【问题标题】:How to get python script file path that has been compiled in binary .exe?如何获取已编译成二进制.exe的python脚本文件路径?
【发布时间】:2018-08-04 05:24:58
【问题描述】:

我有 python 脚本myscript.py,我使用 pyinstaller 使用以下命令编译:pyinstaller -F myscript.py。现在我得到一个名为 myscript.exe 的文件。在我的脚本中,我写了一行代码来获取这个文件的路径:

this_file = os.path.realpath(__file__)
src = this_file
filenameOnly, file_extension = os.path.splitext(src)
exeFile = filenameOnly+'.exe'
print ('exe file to check', exeFile)
if os.path.exists(exeFile):
    src = exeFile
print ('Binary file', src)

但这只有在.exe 文件与初始.py 文件同名时才有效。如果我重命名二进制文件,我的脚本将不会检测到该更改

【问题讨论】:

    标签: python python-os


    【解决方案1】:

    我建议使用sys.argv 来访问命令行参数。 sys.argv 中的第一个值是程序的名称。例如:

    ...
    filenameOnly = sys.argv[0]
    exeFile = filenameOnly + '.exe'
    ...
    

    这里有一些相关的 stackoverflow 链接,供您进一步阅读此主题。

    What is "argv", and what does it do?

    after compiling python program, how to input arguments

    【讨论】:

      【解决方案2】:

      我用src = sys.executable解决了这个问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-08
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        相关资源
        最近更新 更多