pyinstaller打包程序, 找不到文件路径的问题
报错内容为: 百度查找, 目前搜到的都是一些和产生的问题, 经过审计代码, 该项目并不存在该问题.于是想到了第一个解决方案1解决方案1: 直接将原先项目中的配置文件拷贝到, 提示缺失文件的路径中.()缺点: 每次 ->都要进行一次手动的 复制粘贴文件, 很麻烦.配置文件导入的问题, 下方是问题出现的原因分析: 代码的导入是的形式的导入的, 并不会识别出该文件的存在, 只会当作普通的字符串, 导致没
0.问题描述
报错内容为: [Errno 2] Unable to load configuration file (No such file or directory): 'C:\\Project\vs-api\dist\app\app\config\setting.py'
1. 解决方案
百度查找, 目前搜到的都是一些相对路径和绝对路径产生的问题, 经过审计代码, 该项目并不存在该问题.
于是想到了第一个解决方案1
1.1 解决方案①: 直接将原先项目中的配置文件拷贝到, 提示缺失文件的路径中.(经测试, 可以解决)
缺点: 每次升级源码 -> 打包 都要进行一次手动的 复制粘贴文件, 很麻烦.
1.2 解决方案②: 具体如下(经测试, 可以解决)
发现原因
配置文件导入的问题, 下方是问题出现的原因
app.config.from_pyfile('config/secure.py')
app.config.from_pyfile('config/setting.py')
分析:
代码的导入是静态的字符串的形式的导入的, pyinstaller并不会识别出该文件的存在, 只会当作普通的字符串, 导致没有将 两个配置文件进行处理打包.
找到了问题的根源, 可以思考为什么其它.py文件可以被导入?可以猜测是因为import模块触发被pyinstaller识别.
于是得到解决方案, 将字符串导入改为python的模块导入
from app.config import secure, setting
app.config.from_object(secure)
app.config.from_object(setting)
缺点: 如果配置文件不是python文件还是无法解决问题
1.3. 解决方案③: 使用 --add-data “【本地文件路径】;【打包后的项目目录】”(经测试, 可以解决)
需要注意: 前面填的是本地文件,而不是目录;后面填的是打包后的目录,即文件夹,而不是文件。
例如: 将本地的
test.db文件,添加到打包后的项目目录./app/models/db
pyinstaller app-t.py --add-data "F:\\Local\\test.db;.\\app\\models\\db"
更多推荐




所有评论(0)