gpt4 book ai didi

python - Pyinstaller:如何从 importlib_resources 使用的包中包含资源

转载 作者:行者123 更新时间:2023-12-04 08:49:09 28 4
gpt4 key购买 nike

我有以下项目结构:

package1/
__init__.py
some.py
package2
__init__.py
some.py
static_data/
__init__.py
file1.txt
file2.txt
...
my_script.py

my_script.py 包含来自整个结构的导入。除了 importlib_resources 用法外,python 代码工作正常。

我使用 importlib_resources (Python 3.6) 访问文件,如下所示:importlib_resources.open_text(static_data, 'file1.txt').readlines()

构建可执行文件:pyinstaller my_script.py -F --noconsole --noupx

在结果可执行文件中我得到以下错误:

File "lib\site-packages\importlib_resources\_py3.py", line 62, in open_text
File "lib\site-packages\importlib_resources\_py3.py", line 52, in open_binary
FileNotFoundError: 'file1.txt' resource not found in 'package1.package2.static_data'

包含与 importlib_resources 一起使用的资源的正确方法是什么?

最佳答案

默认情况下,PyInstaller 不会将非二进制文件添加到生成的二进制文件中。您可以使用 --add-data 选项手动添加它们,如 here 所述.

假设您正在运行的窗口和您正在访问的资源文件都在package1 顶级包中,您可以尝试这样的操作:

pyinstaller my_script.py -F --noconsole --noupx --add-data "package1;package1"

关于python - Pyinstaller:如何从 importlib_resources 使用的包中包含资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64163815/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com