AttributeError: модуль 'код операции' не имеет атрибута '__file__' для исполняемого файла nuitka в проекте, включая панд и numpy - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь скомпилировать проект python, включая numpy и pandas, с помощью nuitka, но как бы я его не компилировал, у меня возникает ошибка при запуске финального исполняемого файла. Для компиляции я использую следующую команду:

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, но если это возможно, я хотел бы использовать его, чтобы извлечь выгоду из оптимизации компиляции.

Есть ли у вас какие-либо идеи, где эта проблема возникаетоткуда и можно ли это решить?

1 Ответ

0 голосов
/ 24 октября 2019

Ну, я наконец-то получил решение для того же. Distutils, созданные / скопированные virtualenv во время создания, отличаются от тех, что были в оригинальном дистрибутиве питонов. Один из членов команды в Nuitka помог мне обнаружить то же самое и помог мне найти решение. Ну, вариант, который я обнаружил, состоял в том, чтобы взять distutils из папки lib Pythons и заменить существующую папку distutils в созданной папке virtualenv и продолжить - скомпилировать ее. Я твердо верю, что проблема уйдет и для вас, как и для моей. Теперь буду искать подходящее решение для моей полной работы над проектом.

Счастливая подборка:)

...