Pyinstaller在下划线模块名称上窒息。 ImportError:无法导入名称_proj

时间:2015-09-26 15:52:15

标签: build runtime exe pyinstaller proj

我在运行包含pyproj的编译版本时遇到问题。我已经使用pyinstaller编译并在运行时继续运行'无法导入名称错误'。 这与我报告的关于PIL here的错误类似。特别是关于命名约定和错误类型。

虽然我没有发现他们的建议在我的案例中修正了错误,但我已经问了类似的问题here

我已将_proj.pyd中的二进制文件添加到构建文件夹中并在spec文件中引用但无效。

顺便说一下,任何人都可以解释一下下划线命名约定而不是资本调用某些模块的交易是什么? 在这个例子中,_proj而不是Proj。这些类型的模块通常只在其模块文件夹中包含.pyd而不是.py,导致编译器在编译为可执行文件时感到困惑。注意到与问题模块类似的模式,并没有真正理解它。

import _socket # dynamically loaded from C:\Users\Hp\AppData\Local\Temp\_MEI53882\_socket.pyd
import parser # builtin
import win32api # dynamically loaded from C:\Users\Hp\AppData\Local\Temp\_MEI53882\win32api.pyd
import pywintypes # dynamically loaded from C:\Users\Hp\AppData\Local\Temp\_MEI53882\pywintypes27.dll
import pythoncom # dynamically loaded from C:\Users\Hp\AppData\Local\Temp\_MEI53882\pythoncom27.dll
Traceback (most recent call last):
  File "<string>", line 50, in <module>
  File "C:\Python27\Lib\site-packages\PyInstaller\loader\pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "C:\Users\Hp\PycharmProjects\GISdev\build\gis_helper2\out00-PYZ.pyz\pyproj", line 50, in <module>
ImportError: cannot import name _proj

1 个答案:

答案 0 :(得分:1)

通过卸载pyproj并安装包含pyproj作为子模块的底图来解决这个问题。出于某种原因,pyinstaller会选择这个。