从另一个目录运行python

从另一个目录运行python,python,Python,你好 如果我尝试从另一个目录运行python脚本,每次它都会告诉我他找不到所有的ressource文件: pygame.error:无法打开../data/icon.png 等等 我想这是因为相对路径和现在更改的工作目录 我说得对吗?我怎样才能避免这种情况 问候 编辑: 加载代码: path = os.path.join('..', 'data', 'gfx', filename) blah = pygame.image.load(path).convert_alpha() 你说得对。在脚本

你好

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

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

等等

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

我说得对吗?我怎样才能避免这种情况

问候

编辑: 加载代码:

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

你说得对。在脚本中,可以通过使用_file _;获取当前模块的位置和os.path中的各种函数来避免这种情况,从而根据值生成绝对路径。

您是正确的。通过使用_file _uuu获取当前模块的位置以及os.path中的各种函数,以基于值生成绝对路径,可以在脚本中避免这种情况。

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

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

您可以向我们展示一些给您带来问题的代码吗。。在示例中,可以指示数据目录不在程序模块内。正如其他人提到的,最好使用模块路径来恢复非.py文件。您能给我们展示一些给您带来问题的代码吗。。在示例中,可以指示数据目录不在程序模块内。正如其他人提到的,最好使用模块路径来恢复非.py文件。os.getcwd不会提供有关模块的任何信息。这就是_文件_的作用。Ignacio不是用于模块,而是用于从何处执行python进程。getcwd不会提供有关模块的任何信息。这就是_文件_对于.Ignacio的作用,它不是用于模块,而是用于执行python进程的位置。