pyInstaller:导入错误

Sea*_*ene 6 python sockets windows exe pyinstaller

我在Windows中,使用pyInstaller打包python文件.但是发生了一些错误:

Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 386, in importHook
    mod = _self_doimport(nm, ctx, fqname)
  File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 480, in doimport
    exec co in mod.__dict__
  File "D:\Useful Apps\pyinstaller-2.0\server\build\pyi.win32\server\out00-PYZ.pyz\SocketServer", line 132, in <module>
  File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 386, in importHook
    mod = _self_doimport(nm, ctx, fqname)
  File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 480, in doimport
    exec co in mod.__dict__
  File "D:\Useful Apps\pyinstaller-2.0\server\build\pyi.win32\server\out00-PYZ.pyz\socket", line 47, in <module>
  File "D:\Useful Apps\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in importHook
    raise ImportError("No module named %s" % fqname)
ImportError: No module named _socket
Run Code Online (Sandbox Code Playgroud)

我知道那PyInstaller是在路径中_socket,但怎么能让C:\Python27\libs\_socket.lib那个文件找到?

kar*_*tan 14

如果您使用 virtualenv,则应使用“-p”或“--path='D:...'”选项。像这样:

pyinstaller.exe --onefile --paths=D:\env\Lib\site-packages  .\foo.py
Run Code Online (Sandbox Code Playgroud)

这样做是用这个 pathex 路径生成 foo.spec 文件


Die*_*dre 8

就我而言,我试图导入我创建的文件夹,最后到了这里。我通过__init__.py从主文件夹中删除并将其保留__init__.py在我正在导入的子文件夹中解决了这个问题。


xin*_*ose 5

就我而言,我必须删除pyinstaller目录中相关的所有文件夹和文件,即__pycache__builddist*.spec。我重新运行了构建,exe 工作了。


小智 2

您可以将路径添加到应用程序规范文件。

分析对象中,您可以指定pathex=['C:\Python27\libs\', 'C:\Python27\Lib\site-packages']和任何其他路径...

请注意,如果未找到路径,也没有问题...我也有来自 linux 的路径。