我有个问题。我在maya中有一个由python脚本生成的GUI。启动时,图形用户界面会打开一个image.To,加载我使用的以下代码行的图像:
cmds.image( image='/home/s4915717/myName/artefacts/Images/UIheader02.png' )正如您所理解的,如果我将我的脚本移动到另一台计算机上,我应该手动更改路径以正确加载图像。有没有办法防止这种情况,让程序自己找到镜像的分配?
我还尝试使用以下方法:
import os
.
.
.
path = os.path.abspath('myName/artefacts/Images/UIheader02.png')
cmds.image( image=path )它可以在我的pc上工作,但如果我移动到另一台电脑上,它不能工作(是的,我移动了整个文件夹,图像在myName/artefacts中……
发布于 2017-04-28 02:50:52
你的第一条路径是绝对的,你的第二条路径是相对的,这可能是你问题的一部分。
根据操作系统的不同,Maya在用户目录中查找图标的位置略有不同。有关this page in the docs预期的位置,请参见XBMLANGPATH下靠近底部的Maya。如果要指向特殊位置(如网络共享),也可以在启动XBMLANGPATH之前将其设定为自定义位置。
发布于 2018-05-23 06:40:12
如果脚本是从Maya外部的文件中调用的,则可以使用__file__属性,该属性将提供使用该脚本的文件的路径。然后您可以使用它来构建您的路径。
例如,如果您的脚本存储在'/home/s4915717/myName/artefacts‘中,则__file__将返回'/home/s4915717/myName/artefacts',因此__file__ + '/Images/UIheader02.png'将为您提供完整路径:artefacts
最安全的方法可能是将所有脚本存储在特定文件夹(例如Maya脚本文件)中,您可以从该文件夹构建相对路径。
发布于 2018-05-23 12:20:08
正如马丁提到的,您可以在脚本中使用__file__,它将返回该脚本的完整路径。
假设你把你的图片和脚本放在一个文件夹里,如下所示:
+--my_script.py
+--my_folder
| +--my_image.png您可以通过以下方式访问脚本中的图像:
import os
os.path.join(os.path.dirname(__file__), "my_folder", "my_image.png")假设您的文件夹位于一个目录中,如下所示:
+--my_image.png
+--my_folder
| +--my_script.py您可以改用os.path.abspath:
import os
os.path.abspath(os.path.join(__file__, "..", "..", "my_image.png"))abspath帮助解析"..",使其进入一个目录。最后,您可以使用os.path.exists来验证结果路径是否确实存在。
https://stackoverflow.com/questions/43647047
复制相似问题