Python脚本从主目录运行

时间:2019-02-11 13:28:59

标签: python macos pyinstaller

我有一个pyinstaller可执行文件(pyinstaller -F script.py)和.db文件。两者都在/home/dev/dist目录中。尽管此脚本位于同一目录中,但找不到.db文件。我发现该脚本始终从/home目录运行。

如何将路径从/home更改为脚本运行的实际目录?我不知道它是macOS还是pyinstaller功能。

P.S .:我不需要将.db文件添加到可执行文件中。它应该是分开的,但是与脚本在同一目录中

2 个答案:

答案 0 :(得分:0)

import os

os.chdir("Your Path")

我不知道这是您要找的东西,但是您也可以尝试:


import glob

glob.glob("Your Path/*.db") #This will show all files with .db extension in path

您可以使用列表索引运行.db文件

答案 1 :(得分:0)

我有同样的问题。 它实际上不在主目录中运行,在PyInstaller中编译后由于某种原因很难找到真实目录。 PyInstaller文档建议在代码中使用以下代码来获取真实路径:

duration

一旦有了真实路径,就可以连接:

    import sys, os
    if getattr(sys, 'frozen', False):
        # If the application is run as a bundle, the pyInstaller bootloader
        # extends the sys module by a flag frozen=True and sets the app
        # path into variable _MEIPASS'.
        dir_path = sys._MEIPASS
    else:
        dir_path = os.path.dirname(os.path.abspath(__file__))

就是这样。在生成可执行文件时,请确保使用real_file_location = f'{dir_path}/my_file.db' 运算符指定程序需要的文件。示例:

--add-data

这些事情应该确保您的PyInstaller可执行文件可以找到所需的文件。