解决pyinstaller 打包pytorch 的找不到源码问题
时间: 2024-10-18 14:12:27 浏览: 51
当你尝试使用PyInstaller打包包含PyTorch库的应用程序时,可能会遇到“找不到源码”(missing source code)的问题。这是因为PyInstaller默认不会包含依赖库的源代码,它会尝试从网络上查找已编译的.whl文件。为了解决这个问题,你可以按照以下步骤操作:
1. **添加whl文件**:
- 安装`wheel`和`cython`(如果还没安装):
```
pip install wheel cython
```
- 到PyTorch的安装目录下找到对应的.whl文件(如`torch-1.9.0+cu111-cp38-cp38-win_amd64.whl`),将其复制到你的应用项目的dist目录或build目录。
2. **修改spec文件**:
PyInstaller生成的`.spec`文件需要做相应的调整。打开这个文件,在`a.datas`部分添加你刚刚复制的.whl文件:
```python
a = Analysis(['your_script.py'],
pathex=['.', 'src'], # 根据实际情况替换路径
binaries=[],
datas=[('path/to/your/torch_whl', '')],
hiddenimports=['torch'],
hookspath=[], ...)
```
3. **重建app**:
使用命令行运行`pyinstaller your_script.spec`,这次打包应该能找到本地的.whl文件,而不是在线寻找。
4. **测试运行**:
打包完成后,检查dist目录下的应用是否正常运行,如果没有错误,说明问题解决。
阅读全文