我有一个pyinstaller可执行文件(pyinstaller -F script.py
)和.db
文件。两者都在/home/dev/dist
目录中。尽管此脚本位于同一目录中,但找不到.db
文件。我发现该脚本始终从/home
目录运行。
如何将路径从/home
更改为脚本运行的实际目录?我不知道它是macOS还是pyinstaller功能。
P.S .:我不需要将.db
文件添加到可执行文件中。它应该是分开的,但是与脚本在同一目录中
答案 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可执行文件可以找到所需的文件。