父路径Python可以

2024-10-03 04:32:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题。我有一个由python脚本生成的maya图形用户界面。 GUI启动时会打开一个图像。到加载我使用以下代码行的图像:

cmds.image( image='/home/s4915717/myName/artefacts/Images/UIheader02.png' )

如您所知,如果我将脚本移到另一台计算机上,我应该手动更改路径以正确加载图像。 有没有一种方法可以防止这种情况,让程序自己找到分配图像的方法?在

我还尝试使用以下方法:

^{pr2}$

它可以在我的电脑上运行,但如果我移动到另一台电脑上,它就不工作了(是的,我移动了整个文件夹,里面有我的名字/艺术品。。。在


Tags: 方法代码图像image脚本homegui图形用户界面
3条回答

你的第一条路是绝对的,第二条是相对的,这可能是你问题的一部分。在

根据您的操作系统,Maya在用户目录中查找图标的位置略有不同。请参见底部附近的this page in the docs,在XBMLANGPATH下,了解Maya期望的位置。如果要指向特殊位置(如网络共享),也可以在启动Maya之前将XBMLANGPATH设置为自定义位置。在

如果脚本是从Maya外部的文件调用的,则可以使用__file__属性,该属性将为您提供使用它的文件的路径。然后你可以用它来构建你的路径。在

例如,如果脚本存储在'/home/s4915717/myName/artefacts'中,__file__将返回'/home/s4915717/myName/artefacts' 所以__file__ + '/Images/UIheader02.png'将给出完整的路径:'/home/s4915717/myName/artefacts/Images/UIheader02.png'

最安全的方法可能是将所有脚本存储在特定的文件夹(例如Maya脚本文件)中,从中可以构建相对路径。在

正如Martin提到的,您可以在脚本中使用__file__,它将返回该脚本的完整路径。在

假设你把你的图像放在一个文件夹里,脚本如下:

+ my_script.py
+ my_folder
|    + my_image.png

可以通过以下方式访问脚本中的图像:

^{pr2}$

假设你的文件夹在一个目录上,如下所示:

^{3}$

您可以改为使用os.path.abspath

import os
os.path.abspath(os.path.join(__file__, "..", "..", "my_image.png"))

abspath帮助解析".."以进入目录。最后,您可以使用os.path.exists来验证结果路径是否确实存在。在

相关问题 更多 >