用于冻结exe的python os.path.join

时间:2012-09-26 17:49:30

标签: python python-2.7

我正在使用os.walk搜索相对路径的代码。当我将它作为python脚本运行时,我没有任何问题,但在将其转换为exe后,它似乎无法找到相对路径。当前路径打印正常以下是我一直在努力的当前解决方案。

if getattr(sys, 'frozen', False):
    currentPath = os.path.dirname(sys.executable)
    relativePath = os.path.join(currentPath,'/../../folder')
else:
    currentPath = inspect.stack()[0][1]
    relativePath = os.path.join(currentPath,'/../../folder')
     

for root, dirs, files in os.walk(relativePath):

当对exe路径进行硬编码时,exe工作正常。

  

relativePath =“D:/ location /../../ folder”

在转换为我缺少的exe时,是否存在加入时有些棘手的问题?

1 个答案:

答案 0 :(得分:1)

我不确定,但原因可能是你在路径中混合反斜杠和正斜杠。

尝试将创建relativePath的代码更改为以下内容:

relativePath = os.path.join(currentPath, '..', '..', 'folder')

这应该确保您肯定使用正确的路径分隔符。