【发布时间】:2010-06-06 20:17:05
【问题描述】:
我正在开发一个 python 应用程序,并且有一个关于对其进行编码的问题,以便在用户通过 setup.py install 或类似方法将它安装到他或她的机器上后它仍然可以工作。
在我的一个文件中,我使用以下内容:
file = "TestParser/View/MainWindow.ui" cwd = os.getcwd() argv_path = os.path.dirname(sys.argv[0]) file_path = os.path.join(cwd, argv_path, 文件)
为了得到MainWindow.ui的路径,当我只知道相对于主脚本位置的路径时。无论我从哪里调用主脚本,这都有效。
问题是用户在他或她的机器上安装应用程序后,相对路径不同,所以这不起作用。我可以使用__file__,但是根据this,py2exe 没有__file__。
是否有实现此目的的标准方法?还是更好的方法?
编辑:
我是否应该担心 py2exe 而只使用__file__?我没有立即使用 py2exe 的计划,但我希望了解在这种情况下访问文件的正确方法。
【问题讨论】:
-
也许我遗漏了一些东西,但为什么您的安装程序不将 TestParser/* 复制到与其他所有内容相同的位置?只要所有路径都是“相对”的,无论应用程序位于何处,相对路径都应该有效 =)
-
@Dan McDougall 我还在学习 python 的 setup.py 和朋友,所以我可能会遗漏一些东西,但是脚本安装在 bin 目录中,而模块存储在 lib 下。因此,它是与其他所有内容分开存储的命令行脚本。我假设有一些标准的方法来设置我不知道的项目分布。
标签: python file py2exe setup.py