gpt4 book ai didi

python - Nuitka 错误在包 ' ' 中找不到 ' ' 作为绝对导入

转载 作者:太空狗 更新时间:2023-10-29 17:08:04 26 4
gpt4 key购买 nike

我正在尝试使用 nuitka 工具将我的 python 程序转换为 ubuntu 上的可执行文件。如果程序没有任何 import 语句但当我在导入某些东西的程序上使用它时它会中断,例如

测试.py

import numpy

print "hello, world."

在命令行输入这个

nuitka --recurse-all --python-version=2.7 test.py

并给我这些错误

Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/numarray/functions.py:45: Cannot find 'copyreg' in package 'numpy.numarray' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/distutils/npy_pkg_config.py:11: Cannot find 'configparser' in package 'numpy.distutils' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1765: Cannot find 'Numeric' in package 'numpy.distutils' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1770: Cannot find 'numarray' in package 'numpy.distutils' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/f2py/diagnose.py:48: Cannot find 'numpy_distutils' in package 'numpy.f2py' as absolute import.
Nuitka:WARNING:/usr/lib/python2.7/dist-packages/numpy/f2py/diagnose.py:87: Cannot find 'numpy_distutils.command.build_flib' in package 'numpy.f2py' as absolute import.

最佳答案

我不知道您的特定用例,但我在使用 nuitka 时也遇到类似的 Cannot find '' in Package 错误。

我在使用 sqlalchemy 时遇到了与 configparser 类似的问题。
经过大约一天的调试后,我发现 Nuitka 遇到了 SWIG(动态加载共享对象)问题。它的意思基本上是,一些程序/模块试图通过使用条件导入来增加兼容性。
例如:

If python_version==3.5:
import thislibrary
else:
import thatlibrary

具体来说,configparser 库在 python3 中被命名为 configparser,在 python2 中被命名为 ConfigParser
所以基本上发生的事情是 nuitka 正在尝试导入 python 3 的东西,而你显然正在使用 python 2。

对我来说,解决方法是修改 sqlalchemy 的源代码并将 if else 构造更改为:

import thatlibrary   

您可以在此 Guide 中找到更多信息 作者:汤姆谢夫勒

关于python - Nuitka 错误在包 ' ' 中找不到 ' ' 作为绝对导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37713589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com