1. 获取文件执行路径py脚本2. 分别在不同的文件下执行,查看结果3. 总结
1. 获取文件执行路径py脚本
又要打包程序了, 然后就是遇到问题了, 最后解决问题.
在这里就是为了说下使用pyinstaller打包exe后, 获取文件路径异常的问题.
首先需要知道:
-
sys.argv[0]: 运行时, python后面的参数
-
sys.path[0]: 只要模块的绝对路径目录
-
Path(file): 显示文件在执行是的所在目录 查看脚本文件T.py
import sys import os from pathlib import Path
def main(): print("sys.argv[0]: ".ljust(35), sys.argv[0]) print("os.path.realpath(sys.argv[0]): ".ljust(35), os.path.realpath(sys.argv[0])) print("sys.path[0]: ".ljust(35),sys.path[0]) print("os.path.realpath(sys.path[0]): ".ljust(35), os.path.realpath(sys.path[0])) print("Path(sys.executable): ".ljust(35), Path(sys.executable)) print("os.getcwd(): ".ljust(35), os.getcwd()) print("Path(__file__): ".ljust(35), Path(__file__)) if __name__ == "__main__": main() ``` - 执行pyinstaller -F T.py 生成一个可执行文件, T.exe的路径: ```txt T.exe: D:\work\python_code\dist\T.exe ``` - 执行pyinstaller -D T.py 生成可执行文件夹, T.exe的路径: ```txt T.exe: D:\work\python_code\dist\T\T.exe ``` - T.py绝对路径如下: ```txt T.py: D:\work\python_code\T.py ```
2. 分别在不同的文件下执行,查看结果
-
执行<pyinstaller -D T.py>生成的exe文件
# 直接执行T.exe PS D:\work\python_code\dist\T> .\T.exe sys.argv[0]: D:\work\python_code\dist\T\T.exe os.path.realpath(sys.argv