从另一个目录运行python

时间:2011-01-17 02:25:51

标签: python

喂,

如果我尝试从另一个目录运行python脚本,它会告诉我每次他找不到所有的资源文件:

  

pygame.error:无法打开../ data / icon.png

等。

我认为这是因为相对路径和现在更改的工作目录?

我是对的吗?我怎么能避免这个?

问候

编辑: 正在加载代码:

path = os.path.join('..', 'data', 'gfx',  filename)
blah = pygame.image.load(path).convert_alpha()

2 个答案:

答案 0 :(得分:4)

你是对的。通过使用__file__获取当前模块的位置以及os.path中的各种函数以根据值生成绝对路径,可以在脚本中避免这种情况。

答案 1 :(得分:1)

假设您的项目是文件系统中的目录,并且如果您在项目中引用模块和脚本,则使用相对路径很好,在分发时,您必须分发整个目录。但是,如果您在项目文件夹之外引用某些外部路径,请确保编写绝对路径,这样您就不会遇到当前面临的问题。 如果将它放在模块中的任何位置,您可以通过os.getcwd()获取路径。这将提供你的python正在执行的路径,你必须看到你引用的文件可以从该路径访问。