当前位置: 首页 > wzjs >正文

手机销售网站制作长尾词挖掘工具爱站网

手机销售网站制作,长尾词挖掘工具爱站网,鹿寨县住房和城乡建设局网站,极速微网站建设cms文章目录sys.executable 的区别打包前打包后sys.argv 的区别打包前打包后Path(__file__) 的区别打包前打包后应用场景与解决方案总结在使用 PyInstaller 将 Python 脚本打包为独立可执行文件时, sys.executable、 sys.argv 和 Path(__file__) 的行为会发生变化。理…

文章目录

    • `sys.executable` 的区别
      • 打包前
      • 打包后
    • `sys.argv` 的区别
      • 打包前
      • 打包后
    • `Path(__file__)` 的区别
      • 打包前
      • 打包后
    • 应用场景与解决方案
    • 总结

在使用 PyInstaller 将 Python 脚本打包为独立可执行文件时, sys.executablesys.argvPath(__file__) 的行为会发生变化。理解这些差异有助于避免路径相关问题。以下是具体分析:


sys.executable 的区别

打包前

在普通 Python 脚本中,sys.executable 返回当前 Python 解释器的可执行文件路径,例如:

import sys
print(sys.executable)
# 输出示例: "D:\\Python3.10\\python.exe"

打包后

PyInstaller 打包后的可执行文件运行时,sys.executable 会指向当前运行的打包文件本身,而非 Python 解释器。例如:

import sys
print(sys.executable)
# 输出示例: "C:\\dist\\my_app.exe"

此变化是因为 PyInstaller 将 Python 解释器和依赖库“冻结”到可执行文件中。


sys.argv 的区别

打包前

sys.argv 是一个列表,包含命令行参数。第一个元素 sys.argv[0]当前脚本的文件名

import sys
print(sys.argv)
# 运行命令: python my_script.py arg1 arg2
# 输出: ['my_script.py', 'arg1', 'arg2']

打包后

打包后的可执行文件运行时,sys.argv[0] 会变为可执行文件的路径,后续参数保持不变:

import sys
print(sys.argv)
# 运行命令: my_app.exe arg1 arg2
# 输出: ['my_app.exe', 'arg1', 'arg2']

Path(__file__) 的区别

打包前

__file__ 表示当前脚本的文件路径Path(__file__).resolve() 可获取绝对路径:

from pathlib import Path
print(Path(__file__).resolve())
# 输出示例: "D:\\project\\my_script.py"

打包后

PyInstaller 会将脚本打包到临时目录中,__file__ 的路径会指向解压后的临时文件夹。例如:

from pathlib import Path
print(Path(__file__).resolve())
# 输出示例: "C:\\Users\\User\\AppData\\Local\\Temp\\_MEI1234\\my_script.py"

若需获取打包后的可执行文件路径,可结合 sys.executable

from pathlib import Path
import sys
print(Path(sys.executable).resolve())
# 输出示例: "C:\\dist\\my_app.exe"

应用场景与解决方案

  1. 资源文件路径问题
    若脚本依赖同目录下的资源文件(如配置文件、图片),打包后直接使用 Path(__file__) 会失败。推荐通过以下方式解决:

    def get_resource_path(relative_path):"""获取打包后的资源绝对路径"""if getattr(sys, 'frozen', False):  # 判断是否为打包后的环境base_path = sys._MEIPASS  # PyInstaller 解压资源的临时路径else:base_path = Path(__file__).parent.resolve()return Path(base_path) / relative_path
    

    此方法利用了 PyInstaller 特有的 sys._MEIPASS 变量。

  2. 参数传递与调试
    打包后的程序仍可通过命令行传递参数,但需注意 sys.argv[0] 的变化。调试时建议输出完整参数列表以确认行为。


总结

变量/场景打包前打包后
sys.executablePython 解释器路径可执行文件自身路径
sys.argv[0]脚本文件名可执行文件名
Path(__file__)脚本文件绝对路径临时解压目录中的路径

理解这些差异后,可以更安全地处理路径和资源加载问题,确保程序在打包前后均能正常运行。

http://www.dtcms.com/wzjs/82842.html

相关文章:

  • 网站制作 长沙谷歌优化推广
  • 庄辉个人网站建设教学专业seo网络营销公司
  • php会了 怎么做网站手机百度网页版入口
  • 网站建设公司广告标题语求购买链接
  • 广告游戏重庆seo公司排名
  • 怎么通过网站打广告长沙百度推广运营公司
  • 惠安县住房和城乡规划建设局网站产品推广运营方案
  • 长沙圭塘网站建设公司seo网站优化助理
  • 南开做网站公司免费seo课程
  • 淮安市建设工程施工图审查处网站网络营销成功案例有哪些
  • 做浏览任务赚钱的网站营销型网站建设总结
  • 专业建站公司的业务内容网站转让出售
  • 哪个公司做网站最好深圳手机刷网站排名软件
  • 2017做网站挣钱吗搜索引擎优化百度百科
  • 做网站的软件 简单易学站外推广怎么做
  • 棋牌推广如何精准引流搜索引擎优化的对比
  • 怎么做网站邮箱百度用户服务中心
  • 网站适配手机网络黄页平台网址有哪些
  • 河源网站制作重庆整站seo
  • 政府形象建设 网站更新网络营销平台名词解释
  • 建设企业人力资源网站交换友情链接的条件
  • 天元建设集团有限公司济南六公司网站优化推广培训
  • 工业设计作品集网站网站优化提升排名
  • 顺德门户网站建设公司2022年最新热点素材
  • 重庆免费做网站线下推广方案
  • 游戏网站设计书推广软文范例100字
  • 单位网站建设的请示临沂seo
  • 网站建设实验报告模板免费网站在线客服系统源码
  • 安徽省建设监管网站seo营销网站的设计标准
  • 网站开发技术的背景优化百度搜索