pyinstaller打包出来的exe文件报FileNotFoundError: [Errno 2] No such file or directory: '../Remote_file/遥控器码值.xlsx'
时间: 2023-07-22 21:28:51 浏览: 117
pyinstaller打包exe报错:ModuleNotFoundError: No module named 'serial'
这个问题通常是因为PyInstaller默认不会将代码中的资源文件打包进可执行文件中,导致程序在运行时无法找到这些资源文件。解决这个问题的方法有以下几种:
1. 使用绝对路径访问资源文件
可以使用os.path.abspath()函数将相对路径转换为绝对路径,例如:
```
import os
file_path = os.path.abspath("../Remote_file/遥控器码值.xlsx")
```
这里将相对路径"../Remote_file/遥控器码值.xlsx"转换为绝对路径后存储在变量file_path中,可以在代码中使用该变量来访问文件。
2. 手动将资源文件打包进可执行文件中
可以使用PyInstaller提供的--add-data参数将资源文件手动添加到可执行文件中。具体操作方法请参考我之前回答的问题。
3. 在代码中使用pkg_resources包
如果您的资源文件是Python包的一部分,可以使用Python内置的pkg_resources包来访问这些资源文件。例如:
```
import pkg_resources
file_content = pkg_resources.resource_string(__name__, "../Remote_file/遥控器码值.xlsx")
```
这里使用pkg_resources.resource_string()函数读取了相对路径"../Remote_file/遥控器码值.xlsx"指定的文件内容,并存储在变量file_content中。需要注意的是,使用pkg_resources需要将资源文件作为包的一部分打包,否则仍然无法访问该文件。
阅读全文