【发布时间】:2015-10-27 03:40:13
【问题描述】:
所以我正在尝试为我的一个 python 程序制作一个可执行文件。我需要访问可执行文件所在文件夹中的文件。因为这个文件可能会被移动,所以我使用import os; current_dir = os.getcwd()。
当我通过带有python filename.py 和print current_dir 的终端运行程序时,我得到/Users/User/Desktop/Executable/。
当我通过 Finder 使用终端打开 .py 来运行可执行文件(我在 OS X 上),并打印了 current_dir 时,我得到了 /Users/User。请注意,这没有我需要的其他 2 个级别,即Desktop/Executable。为什么会发生这种情况?
备注:这只是一个一次性的、快速的可执行文件,不打算长时间使用,但它是必要的,所以制作 .py 可执行文件符合我们的目的。这是由chmod +x filename.py 完成的。
答案可以在所选答案的 cmets 之后找到:
import os
import sys
if hasattr(sys, 'frozen'):
basis = sys.executable
else:
basis = os.path.dirname(sys.argv[0])
【问题讨论】:
-
因为你的工作目录不同,把完整路径传给目录
-
github.com/glue-viz/glue-bot/issues/2 这个问题可能会有所帮助...
标签: python macos python-2.7 executable