一劳永逸:解决pyinstaller ModuleNotFoundError FileNotFoundError: [Errno 2] No such file or directory

ModuleNotFoundError

pip show joblib

1  pip show joblib
Name: joblib
Version: 1.3.2
Summary: Lightweight pipelining with Python functions
Home-page:
Author:
Author-email: Gael Varoquaux <gael.varoquaux@normalesup.org>
License: BSD 3-Clause
Location: C:\Python311\Lib\site-packages
Requires:
Required-by: scikit-learn

2 修改 spec文件:

a = Analysis(
    ['predictApp.py'],
    pathex=['C:\\Python311\Lib\\site-packages\\site-packages'],
    binaries=[],
    datas=[('random_forest_input_model2.pkl', 'models')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)

FileNotFoundError: [Errno 2] No such file or directory

Traceback (most recent call last):
  File "predictApp.py", line 19, in <module>
  File "predictApp.py", line 16, in load_model
FileNotFoundError: [Errno 2] No such file or directory: 'models\\random_forest_input_model2.pkl'
[41680] Failed to execute script 'predictApp' due to unhandled exception!
 

Pyinstaller -F -w predictApp.py --add-data=random_forest_input_model2.pkl:. 

如果放在二级目录下

Pyinstaller -F -w predictApp.py --add-data=random_forest_input_model2.pkl:models

等同于修改spec文件:

a = Analysis(
    ['predictApp.py'],
    pathex=['C:\\Python311\Lib\\site-packages\\site-packages'],
    binaries=[],
    datas=[('random_forest_input_model2.pkl', 'models')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用pyinstallerPython代码打包成可执行文件时,有时会出现找不到文件或目录的错误。这通常是由于pyinstaller没有正确打包所需的文件或目录导致的。解决此问题的方法如下: 1.确保你的代码中使用的所有文件和目录都包含在打包列表中。可以使用以下命令将文件或目录添加到打包列表中: ```python a = Analysis(['your_script.py'], pathex=['/path/to/your/script'], binaries=[], datas=[('/path/to/your/file', '.')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) ``` 其中,`datas`参数用于将文件或目录添加到打包列表中。例如,如果你的代码需要使用`/path/to/your/file`文件,则可以将其添加到打包列表中。 2.如果你的代码使用了第三方库,则需要确保该库已正确安装并包含在打包列表中。可以使用以下命令将第三方库添加到打包列表中: ```python hiddenimports=['your_package'] ``` 其中,`hiddenimports`参数用于将第三方库添加到打包列表中。例如,如果你的代码使用了`your_package`库,则可以将其添加到打包列表中。 3.如果你的代码使用了相对路径,则需要确保相对路径是正确的。可以使用以下命令将相对路径添加到打包列表中: ```python a = Analysis(['your_script.py'], pathex=['/path/to/your/script'], binaries=[], datas=[('relative/path/to/your/file', '.')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) ``` 其中,`datas`参数用于将相对路径添加到打包列表中。例如,如果你的代码需要使用`relative/path/to/your/file`文件,则可以将其添加到打包列表中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值