0

在 Python 中查找文件是否有标准流程?如果我有一个我的代码用作参考的数据文件,不同的打包管理器会将这些文件存储在不同的位置。

建议使用:

import pkg_resources

resource_pkg = pkg_resources.get_distribution('MY_FILE_HERE').location

但是,如果我使用 pyinstaller 之类的东西,将我的代码打包为 .exe,则文件位置不再与 pkg_resources 一起安装,我的代码现在已损坏。是否有所有包管理器都遵循的通用流程?否则我将不得不依赖环境变量?pyinstaller 的方法是什么?

4

1 回答 1

0

pkg_resources 文档解释了该属性:

地点

指示分布位置的字符串。对于可导入的发行版,这是将添加到 sys.path 以使其可主动导入的字符串。对于不可导入的发行版,这只是一个文件名、URL 或其他定位发行版的方式。

您打包的 .exe 是不可导入的,因此听起来您需要另一种方式来访问这些位。

考虑在运行时或最好在安装时从 URL 下载到用户主目录中的缓存。

pyinstaller文档建议使用__file__

path_to_dat = path.join(path.dirname(__file__), 'file.dat')
于 2020-07-26T00:39:24.377 回答