【已解决】Python打包成exe.后无法访问程序所在的路径 No such file or directory:[27168] Failed to execute script ‘main‘ d

目录

遇到的问题

解决方法 

    方法一 :更新pyinstaller的版本

    方法二:更改打包命令的参数

    方法三:使用sys来获取exe.所在路径


遇到的问题

         最近在用python写一个脚本,其中用了os来获取相对路径的方式来获取当前路径并搜索文件名的方式来找到目标文件的路径,在编译时可以成功运行,但是在我用pyinstaller将其打包成exe.后再运行时却会发生报错。

No such file or directory:[27168] Failed to execute script 'main' due to unhandled exception!

pyinstaller --onefile main.py

解决方法 

        该报错反应的是程序找不到相应路径的错误,为解决这个问题,我翻阅了相关文章和pyinstaller的相关参数后,用了几种方法最终成功解决了该问题。       

    方法一 :更新pyinstaller的版本

        更新pyinstaller的版本至最新版,可以将原来的pyinstaller卸载后在命令行重新安装,但是更新至最新版本之后问题仍然存在。

    方法二:更改打包命令的参数

        看了pyinstaller的参数和相关的文章后,参考了两种方法,分别是以下两种打包方式。

pyinstaller --hidden-import=pkg_resources -F main.py   #对某些错误进行屏蔽

pyinstaller -D -w main.py  #主文件直接导入文件夹内包

        但是换了几种打包方式后发现问题仍然存在,故判断问题应该不在打包上。

    方法三:使用sys来获取exe.所在路径

        研究了很久发现,原来python的exe.执行的时候会自己生成一个临时路径来运行,所以自然拿不到exe.目录的路径,这时我们需要更改一下代码,使用sys.argv来让exe.在运行时正确获取自己所在的路径。

current_directory = os.path.dirname(os.path.realpath(sys.argv[0]))

        将路径变量的获取改为如上的方式后,再次打包exe.并执行,成功获取了正确的路径并得出结果,问题成功解决。

        

          有用的话点个赞再走吧(⊙﹏⊙)
       

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mishudo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值