AttributeError:模块“opcode”在包含pandas和numpy的项目中没有nuitka可执行文件的属性“\uu file”

2024-04-30 01:15:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用nuitka编译一个python项目,包括numpy和pandas,但是不管我如何编译它,在启动最终的可执行文件时都会出错。 对于编译,我使用下一个命令:

python -m nuitka --standalone --follow-imports --plugin-enable=numpy --include-plugin-directory=.venv/lib/python3.6/site-packages/pandas --include-plugin-directory=.venv/lib/python3.6/site-packages/numpy --show-progress --show-scons newick2phylipmatrix.py

但是,当我尝试启动编译生成的可执行文件时,我得到以下消息:

Traceback (most recent call last):
  File "/home/mindsound/sandbox/distMatrix/newick2phylipmatrix.dist/newick2phylipmatrix.py", line 6, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
  File "/home/mindsound/sandbox/distMatrix/newick2phylipmatrix.dist/pandas/__init__.py", line 22, in <module pandas>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
  File "/home/mindsound/sandbox/distMatrix/newick2phylipmatrix.dist/pandas/compat/numpy/__init__.py", line 3, in <module pandas.compat.numpy>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
  File "/home/mindsound/sandbox/distMatrix/newick2phylipmatrix.dist/distutils/__init__.py", line 11, in <module>
AttributeError: module 'opcode' has no attribute '__file__'

目前,在不改变任何代码的情况下,我设法用pyinstaller创建了一个独立的安装程序,但我不能用nuitka,但如果可能的话,我想用它从编译优化中获益。你知道吗

你知道这个问题是从哪里来的,能不能解决吗?你知道吗


Tags: andinpynumpypandaslineloadimportlib
1条回答
网友
1楼 · 发布于 2024-04-30 01:15:28

我终于找到了同样的解决办法。virtualenv在创建时创建/复制的distutil与pythons原始发行版中的distutil不同。Nuitka的一个团队成员帮助我发现了同样的问题,并帮助我找到了解决方案。我发现的方法是从Pythons lib文件夹中提取distutils,替换virtualenv文件夹中现有的distutils文件夹,然后继续编译。我坚信这个问题对你也会像对我一样消失。现在将寻找在我的整个项目工作得到适当的解决方案。你知道吗

快乐编译:)

相关问题 更多 >