Pyinstaller:一个读取CSV文件的程序

6
我正在使用Python编写一个程序,该程序可以读取用户提供的CSV文件。
我使用Pyinstaller来构建MacOS应用程序。
在Windows中,我使用CX_freeze,只需将CSV文件放置在与.exe文件相同的目录中即可使程序正常工作。但是使用PyInstaller时,即使我将文件放置在相同的目录中,程序也无法找到它。
那么用户需要将文件放在哪里才能让程序找到它呢?
该程序非常基础,类似于以下内容:
import pandas as pd

df = pd.read_csv('file.csv')

print(df)

谢谢。

你尝试过放置完整路径吗? - Julio CamPlaz
1个回答

6
当我使用Pyinstaller创建可执行文件时,我必须使用 --add-data 参数。
通过这个参数,你可以指定像 .csv 这样的文件的路径。
如果你正在创建一个单一文件的捆绑包,Pyinstaller会在内部重命名路径 [文档],所以如果你的 .csv 文件在某个文件夹中,每次访问项目中的文件都需要像这样做:
def resource_path(relative):
    #print(os.environ)
    application_path = os.path.abspath(".")
    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'.
        application_path = sys._MEIPASS
    #print(application_path)
return os.path.join(application_path, relative)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接