Python My.exe文件找不到其数据文件

Python My.exe文件找不到其数据文件,python,cx-freeze,Python,Cx Freeze,我使用cx\u freeze从.py文件创建了一个.exe。生成.exe文件时,我的2个数据文件成功包含在生成文件夹中,但运行.exe时,程序找不到这些文件 我的设置(): 我认为这是我的.py代码中的文件路径的问题--无论.exe在哪台计算机上运行,如何为.exe编写正确的文件路径以查找数据文件 我的文件路径是: filepath = 'Transactions.csv' 因为数据文件在我的.py项目文件夹中。当我从PyCharm运行.py时,它成功地工作了。但当我运行.exe时,它无法在构

我使用cx\u freeze从.py文件创建了一个.exe。生成.exe文件时,我的2个数据文件成功包含在生成文件夹中,但运行.exe时,程序找不到这些文件

我的设置():

我认为这是我的.py代码中的文件路径的问题--无论.exe在哪台计算机上运行,如何为.exe编写正确的文件路径以查找数据文件

我的文件路径是:

filepath = 'Transactions.csv'
因为数据文件在我的.py项目文件夹中。当我从PyCharm运行.py时,它成功地工作了。但当我运行.exe时,它无法在构建文件夹中找到该文件。现在,为了使文件路径适用于任何系统,它是:

filepath = os.path.abspath( 'Transactions.csv' )
只有当我的文件路径符合我自己的系统(/User/ethan/documents/project/transactions.csv)时,.exe才起作用。但是如果我将这个.exe发送给其他人,文件路径显然无法工作


我试图通过分配p=os.path.abspath('transactions.csv')在任何系统上工作来创建一个可变的文件路径,但在运行.exe时,我收到了文件不存在的错误。我做错了什么?

包括以下方法:

def resource_path(relative_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)

    return os.path.join(os.path.abspath("."), relative_path)
然后使用以下命令引用任何文件路径:

logopath =resource_path('Logo.jpg')

应该希望解决您的问题

不要忘记导入os.path和sysHmm。我使用了您的方法,并且遇到了与使用os.path.abspath('Transactions.csv')时相同的问题。当试图从my.exe访问csv时,终端会给我一个错误提示:文件/Users/ethan/Transactions.csv不存在。这是真的,因为文件不在“ethan”目录中。它在build文件夹中。我似乎无法让它调用build文件夹来获取文件。
logopath =resource_path('Logo.jpg')