pyinstaller打包程序后,运行exe后报错:FileNotFoundError: [Errno 2] No such file or directory

以使用jieba的项目为例。打包运行程序后,

pyinstaller -F D:\svn_code\xxx.py --distpath D:\lcf\project_install\ --specpath D:\lcf\project_install --workpath D:\lcf\project_install

报错:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\GONGDA~1\\AppData\\Local\\Temp\\_MEI218882\\jieba\\dict.txt'

pyinstaller打包的时候没有把jieba的dict.txt的这个文件打包进来,所以报错。解决办法,使用pyinstaller --add-data参数将dict.txt文件也打包起来。

–add-data参数的基本语法为:

--add-data <source>;<destination>

其中,<source>表示源文件路径,<destination>表示目标文件路径。
需要注意的是,由于Windows和Unix系统路径分隔符不同,因此在Windows系统中需要使用分号(;)作为路径分隔符,而在Unix系统中需要使用冒号(:)作为路径分隔符。

增加–add-data参数后的打包命令:

pyinstaller -F D:\svn_code\xxx.py --distpath D:\lcf\project_install\ --specpath D:\lcf\project_install --workpath D:\lcf\project_install --add-data "jieba/dict.txt;.\jieba"

增加–add-data “jieba/dict.txt;.\jieba”。

在第三方库jieba下找到dict.txt文件,在pyinstaller的目录下建立一个jieba的目录,将dict.txt文件放到创建的jieba目录下。我的是在D:\lcf\project_install目录下了jieba,将dict.txt放到jieba下。文件目录使用相对路径。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值