Ошибка после компиляции Python NetworKit сценария в stati c двоичный файл - PullRequest
0 голосов
/ 08 апреля 2020

Я использую pyinstaller и staticx для компиляции скрипта Python3 .6 для хранения c двоичного файла. Я установил все пакеты через pip в виртуальной среде (venv).

Все работает нормально, пока я не попытаюсь добавить строку import networkit as nk в начало моего скрипта. Компиляция все еще работает, но как только я запускаю остальной неизмененный файл, я получаю следующую ошибку:

  File "StrategicSolver.py", line 15, in <module>
    import networkit as nk
  File "<my_path>/strat_solver_env/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "networkit/__init__.py", line 50, in <module>
  File "<my_path>/strat_solver_env/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "networkit/graph.py", line 2, in <module>
  File "networkit/_NetworKit.pyx", line 6, in init networkit._NetworKit
ModuleNotFoundError: No module named 'networkit.exceptions'
[19811] Failed to execute script StrategicSolver

Должен быть модуль 'networkit.exceptions' (я также пытался установить пакет из источника через python3 setup.py install), поэтому я не уверен, что происходит. У меня нет большого опыта в создании файлов c из Python, поэтому любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 апреля 2020

Мне удалось найти временный обходной путь, клонировав репозиторий и закомментировав любую строку в _NetworKit.pyx, которая опирается на «networkit.exceptions» (см. Ниже).

# from networkit.exceptions import ReducedFunctionalityWarning
.
.
.
try:
    import pandas
except:
    # warnings.warn("WARNING: module 'pandas' not found, some functionality will be restricted",
    #       ReducedFunctionalityWarning)
    pass

С этого момента, сборка из источника, как описано в руководстве по установке.

...