首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Python NetworKit脚本编译为静态二进制文件后出错

将Python NetworKit脚本编译为静态二进制文件后出错
EN

Stack Overflow用户
提问于 2020-04-08 22:34:13
回答 1查看 64关注 0票数 1

我使用pyinstaller和staticx将Python3.6脚本编译成静态二进制文件。我已经通过pip在一个虚拟环境(venv)中安装了所有的包。

在我尝试将import networkit as nk这行代码添加到脚本的顶部之前,一切都很正常。编译仍然可以工作,但是一旦我运行了这个没有修改的文件,我就会得到以下错误:

代码语言:javascript
复制
  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从源安装这个包),所以我不确定是怎么回事。我没有从Python构建静态二进制文件的经验,所以如果有任何帮助,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 00:22:09

通过克隆存储库并注释掉_NetworKit.pyx中任何依赖于'networkit.exceptions‘的行(见下文),我找到了一个临时的解决方法。

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

从那里开始,按照安装指南中的说明从源代码进行构建。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61103268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档