【发布时间】:2020-12-30 17:50:41
【问题描述】:
我创建了一个脚本,它从一个文件夹中获取一个文件并在另一个文件夹中生成另一个文件。这是一个将一种格式转换为另一种格式的项目,供没有强大信息学背景的人使用,因此我创建了一个包含脚本的文件夹以及输入文件夹和输出文件夹。用户只需要将输入文件放在输入文件夹中,然后从输出文件夹中取出结果即可。
如果我在使用可视代码运行此 python 脚本以及如果我使用终端 (python CSVtoVCFv3.py) 运行该脚本,则该脚本工作正常
但是当我使用 pyinstaller 将脚本转换为可执行文件时,我发现了下一个错误。
File "CSVtoVCFv3.py", line 99, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '/Users/manoldominguez/input/'
[99327] Failed to execute script CSVtoVCFv3
第99行使用的代码是:
97 actual_path = os.getcwd()
98 folder_input = '/input/'
99 input_file_name = os.listdir(actual_path+folder_input)
100 input_file_name= ''.join(input_file_name)
101 CSV_input = actual_path+folder_input+input_file_name
我也试过这个:
actual_path = (os.path.dirname(os.path.realpath('CSVtoVCFv3.py')))
据我所知,问题的结论是:
在这些行中,如果我运行我的脚本,我会得到这个
'/Users/manoldominguez/Desktop/CSVtoVCF/input/'
如果我的脚本与我的可执行文件一起运行,我会得到这个
'/Users/manoldominguez/input/'
【问题讨论】:
-
这看起来像是 Python 编程问题,而不是 Unix/Linux 问题。无论如何,检查
os.getcwd()的结果以及如何调用python 程序。 -
感谢 Eduardo os.getcwd() 还给我 '/Users/manoldominguez/Desktop/CSVtoVCF'
-
谢谢ajgringo619。我会的。
-
考虑使用
os.path.join()而不是连接字符串 -
而是
os.path.dirname(os.path.realpath(__file__))或os.path.dirname(os.path.realpath(sys.argv))
标签: shell executable