在PyIns中找不到导入的模块

2024-04-20 13:13:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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

我知道_socket在路径C:\Python27\libs\_socket.lib中,但是如何让生成的EXE找到该文件?


Tags: appsinpymodserverlinesocketloader
2条回答

如果使用的是virtualenv,则应使用“-p”或“-path=”D:…”选项。像这样:

pyinstaller.exe --onefile --paths=D:\env\Lib\site-packages  .\foo.py

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

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

Analysis对象中,可以指定pathex=['C:\Python27\libs\', 'C:\Python27\Lib\site-packages'],以及任何其他路径。。。

注意,如果没有找到路径,就没有问题。。。我也有linux的路径。

相关问题 更多 >