首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuitka错误无法在包‘’中找到‘’作为绝对导入

Nuitka错误无法在包‘’中找到‘’作为绝对导入
EN

Stack Overflow用户
提问于 2016-06-09 05:52:33
回答 2查看 6.2K关注 0票数 15

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

test.py

代码语言:javascript
复制
import numpy

print "hello, world."

在命令行中键入以下内容

代码语言:javascript
复制
nuitka --recurse-all --python-version=2.7 test.py

并给出了这些错误

代码语言:javascript
复制
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.
EN

回答 2

Stack Overflow用户

发布于 2016-07-11 18:57:48

我不知道你的特定用例,但我在使用nuitka时也遇到了类似的在包中找不到'‘的错误。

我正在使用sqlalchemy,在使用configparser时遇到了类似的问题。

经过大约一天的调试,我发现Nuitka在SWIG (动态加载的共享对象)中出错了。这基本上意味着,一些程序/模块试图通过使用条件导入来提高兼容性。

例如:

代码语言:javascript
复制
If python_version==3.5:
    import thislibrary
else:
    import thatlibrary

具体来说,configparser库在python3中被命名为configparser,在python2中被命名为ConfigParser

所以基本上发生的是nuitka试图导入python3的东西,而你显然是在使用python2。

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

代码语言:javascript
复制
import thatlibrary   

您可以在Tom Sheffler编写的这个Guide中找到更多信息

票数 6
EN

Stack Overflow用户

发布于 2016-08-08 15:09:25

Official answer from Nuitaka.

你面临的问题同样像另一个用户面临的问题package 'matplotlib' as absolute import.这个问题,然后有nuitaka给下面的评论检查它是否对下面的评论有用。

我想你可能在Windows上使用的是32位的

,达到了2 2GB内存的界限。使用64位可以获得更好的运气。顺便说一句,我正在为下一个版本的可伸缩性改进工作,这应该不会发生这种情况。目前,Nuitka将1000个模块加载到RAM中,并在全局范围内编译它们。需要大量内存。

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

https://stackoverflow.com/questions/37713589

复制
相关文章

相似问题

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