【发布时间】:2018-06-29 05:40:28
【问题描述】:
我使用 cx_freeze 从我的 .py 文件创建一个 .exe。当我构建.exe文件时,我的2个数据文件成功包含在构建文件夹中,但是当我运行.exe时,程序找不到文件。
我的设置():
from cx_Freeze import setup, Executable
setup(name='pipermain',
options={ 'build_exe':{'packages':[ 'tkinter','PIL' ],'include_files': ['Transactions.csv', 'piper_copy.png' ]}},
description='',
executables= [Executable('pipermain.py')]
)
我认为这是我的 .py 代码中的文件路径的问题——无论 .exe 在哪台计算机上运行,如何为我的 .exe 编写正确的文件路径以查找数据文件?
我的文件路径是:
filepath = 'Transactions.csv'
因为数据文件在我的 .py 项目文件夹中。当我从 PyCharm 运行 .py 时,这成功了。但是当我运行 .exe 时,它无法在构建文件夹中找到该文件。现在,为了使文件路径适用于任何系统,它是:
filepath = os.path.abspath( 'Transactions.csv' )
.exe 仅在我的文件路径适合我自己的系统 (/User/ethan/documents/project/transactions.csv) 时才有效。但是如果我将此.exe 发送给其他人,文件路径显然不起作用。
我试图通过分配 p = os.path.abspath('transactions.csv') 来创建可变文件路径以在任何系统上工作,但是在运行 .exe 时我收到文件不存在的错误.我做错了什么?
【问题讨论】: