k-w*_*war 9 python pyinstaller plotly
我正在使用 pyinstaller 编译我当前的程序,它似乎无法处理所有必需的文件。它自己运行得很好,而且没有情节,它也可以编译和运行。
似乎无法找到我什至无法在驱动器上的任何位置找到的文件“default-schema.json”。
回溯(最近一次调用):文件“comdty_runtime.py”,第 17 行,在文件“”,第 2237 行,在 _find_and_load 文件“”,第 2226 行,在 _find_and_load_unlocked 文件“”,第 1191 行,在 _load_unlocked 文件“”中,第 1161 行,在 _load_backward_compatible 文件“d:\users\ktehrani\appdata\local\continuum\anaconda3\envs\py34\lib\site-p ackages\PyInstaller\loader\pyimod03_importers.py”,第 389 行,在 load_module exec(字节码, 模块.dict) 文件“actual_vs_mai.py”,第 12 行,在文件“”,第 2237 行,在 _find_and_load 文件“”,第 2226 行,在 _find_and_load_unlocked 文件“”,第 1191 行,在 _load_unlocked 文件“”,第 1161 行,在 _load_backcompatible 中d:\users\ktehrani\appdata\local\continuum\anaconda3\envs\py34\lib\site-p ackages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module exec(bytecode, module. dict ) 文件" site-packages\plotly__init__.py”,第 31 行,在文件“”,第 2237 行,在 _find_and_load 文件“”,第 2226 行,在 _find_and_load_unlocked 文件“”,第 1191 行,在 _load_unlocked
文件“”,第 1161 行,在 _load_backward_compatible 文件“d:\users*\appdata\local\continuum\anaconda3\envs\py34\lib\site-p ackages\PyInstaller\loader\pyimod03_importers.py”,第 389 行,在 load_module exec(bytecode, module. dict ) File "site-packages\plotly\graph_objs__init__.py", line 14, in
File "", line 2237, in _find_and_load
File "", line 2226, in _find_and_load_unlocked File "", line 1191,在 _load_unlocked 文件“”,第 1161 行,在 _load_backward_compatible 文件“d:\users*\appdata\local\continuum\anaconda3\envs\py34\lib\site-p ackages\PyInstaller\loader\pyimod03_importers.py”,第 389 行,在load_module EXEC(字节码,模块。字典) 文件“site-packages\plotly\graph_objs\graph_objs.py”,第 34 行,在文件“”,第 2237 行,在 _find_and_load
文件“”,第 2226 行,在 _find_and_load_unlocked 文件“”,第 1191 行,在 _load_unlocked 文件“” ,第 1161 行,在 _load_backward_compatible 文件“d:\users*\appdata\local\continuum\anaconda3\envs\py34\lib\site-p ackages\PyInstaller\loader\pyimod03_importers.py”,第 389 行,在 load_module exec(字节码,模块字典)文件“站点包\ plotly \ graph_reference.py”,线路578,在
文件“site-packages\plotly\graph_reference.py”,第 70 行,get_graph_reference 文件“site-packages\setuptools-27.2.0-py3.4.egg\pkg_resources__init__.py”,第 1215 行,resource_string 文件“ site-packages\setuptools-27.2.0-py3.4.egg\pkg_resources__init__.py”,第 1457 行,在 get_resource_string 文件“site-packages\setuptools-27.2.0-py3.4.egg\pkg_resources__init__.py”中,第 1530 行,在 _get 文件“d:\users*\appdata\local\continuum\anaconda3\envs\py34\lib\site-p ackages\PyInstaller\loader\pyimod03_importers.py”中,第 474 行,在 get_data 中打开( path, 'rb') as fp: FileNotFoundError: [Errno 2] 没有这样的文件或目录:'H:\Python\Commodity_M AI_Trade_List\Code\dist\comdty_runtime\plotly\package_data\default-schema。json'
小智 12
我遇到了同样的问题,并通过 pyinstaller 文档找到了该怎么做:
pyinstaller 创建一个与 .py 文件同名的 .spec 文件。在 a = Analysis 下,你会发现 datas = []
a = Analysis(['graphic_interface.py'],
pathex=[xxx],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
Run Code Online (Sandbox Code Playgroud)
在那里你添加了 plotly 的路径。相对路径对我不起作用,所以我设置了绝对路径
datas=[('C:\\Users\\Me\\PycharmProjects\\Project\\venv\\Lib\\site-packages\\plotly\\', 'plotly')],
Run Code Online (Sandbox Code Playgroud)
现在你必须在运行 pyinstaller 时使用规范文件
pyinstaller myproject.spec myproject.py
Run Code Online (Sandbox Code Playgroud)
您无需担心 oneFile 等其他命令,因为它们已经保存在 .spec 文件中
您仍然可以使用 one file 选项,只需为 pyinstaller 创建一个 .spec 文件,并在数据中包含所需的 plotly 目录,如下所示:
...
datas=[('(...)/Python/Python36-32/Lib/site-packages/plotly/', './plotly/')],
Run Code Online (Sandbox Code Playgroud)
...
PyInstaller 似乎并不完全支持plotly。
我使用了对我有用的解决方案。