资讯专栏INFORMATION COLUMN

python打包exe后设置随系统启动并读取配置文件遇到的一点小坑

shixinzhang / 2278人阅读

摘要:打包成一个文件,这个技术网上有不同的框架技术可以实现,就略过了,我用的是。这里主要说的是,当这个配置成随系统启动,则是自动启后,当你试图读取同一目录下的文件的时候,会发现找不到该文件。

python打包成一个exe文件,这个技术网上有不同的框架技术可以实现,就略过了,我用的是pyinstaller。

这里主要说的是,当这个exe配置成随系统启动,则是自动启后,当你试图读取同一目录下的文件的时候,会发现找不到该文件。

其实这是因为,放在run注册表下的自启动程序,运行的时候,基于某些原因,其实是被强制当做在

C:/windows/system32

下运行,所以就会找不到你放在程序目录里的配置文件。


说了那么多,其实主要是想说,如何可以获得该exe的真实目录路径,请看下面这个截图

聪明的你,请自动略过那些windows/system32,自然就会看到哪个方法才是你需要调用的。
然后,只要提取出路径部分就可以,这里因为我是新手,所以又遇到了一个坑,就是关于斜杠和反斜杠的问题。
在代码调试的时候,sys.argv[0]里面的是"/",但是到自动运行的时候,却是""。
好吧,你自己体会过就知道,我直接post上我的代码。

def getExePath():
    sap = "/"
    if sys.argv[0].find(sap) == -1:
        sap = ""
    indx = sys.argv[0].rfind(sap)
    path = sys.argv[0][:indx] + sap
    return path

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44342.html

相关文章

  • Python和FFmpeg强强联合

    摘要:核心子进程运行控制。由应用来看,关键是录制屏幕和录制摄像头,以及用快捷键控制在这两者之间切换。限制条件是超过三个月快捷键失效。实现分两步安装时在注册表特定位置,假如是,写入目录相关信息。在程序运行时,检测当前目录是否存在于注册表下。 录制项目终于做完,不用总是提醒自己抓紧时间这样来想问题了。在完成之后带着一些满足感,回头看看哪些地方是需要改进的,哪些地方又是有更好的替代方案,自己又有哪...

    ThreeWords 评论0 收藏0
  • python打包exe可执行文件—Pyinstaller工具

    摘要:现在,主流的工具有,本文只介绍的使用。准备工作开发环境和工具可以支持和。 python是脚本语言,如果你在开发机器上执行当然会很方便,可是如果你帮他人写了个脚本,想在他人机器上运行,可能会遇到点困难。 为了让脚本在他人机器上顺利执行,你首先要帮他安装python解释器,如果你import了一些库比如pandas,那这个也需要安装,甚至相关的依赖也需要安装。这个时间成本显然是很大的,这部...

    xiaoqibTn 评论0 收藏0
  • 使用pyinstaller将python打包exe

    摘要:起因是从某发现了一个站挂机助手,依赖于直播的一个库,作者的处理方式是将依赖的库打包为,然后使用进行调用。它能够在等操作系统下将源文件打包,通过对源文件打包,程序可以在没有安装的环境中运行,也可以作为一个独立文件方便传递和管理。 起因是从某 hub 发现了一个B站挂机助手,依赖于直播的一个库,作者的处理方式是将依赖的库打包为 exe,然后使用 python 进行调用。 然后因为依赖的 l...

    AnthonyHan 评论0 收藏0
  • 【easy-invoices】electron-vue、sqlite3 项目初探

    摘要:远程读取会有许多限制,防止引起不必要的安全隐患。比较时可以把点去掉转为数字类型比较脚本执行完毕下载前可以拿到更新日志时间版本号和包大小,下载时可以拿到速度。然后开启该项目的构建。将第一步生成的填至项目环境变量,参数名为。 父母都是做出纳相关的工作,希望我能给他们做个简单的进销存,在上班的时候使用。开发一个不需要花钱买服务器,不需要依赖网络(更新除外),单机版的程序,对于前端出身的我来说...

    wpw 评论0 收藏0

发表评论

0条评论

shixinzhang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<