我使用Maya2014 + PyQt4。我所有的脚本都存储在服务器上。我有一条路:
## a place where all are read python scripts:
PYTHONPATH=X:\tools\Maya\windows\2014\python\
## a place for *.ui files:
# X:\tools\Maya\windows\2014\python\ui\
## a place for *.ico and *.png files:
XBMLANGPATH=X:\tools\Maya\windows\2014\icons\当我运行maya的脚本时,没有问题。但是要下载*.ui文件,我必须指定完整的路径:
form, base = uic.loadUiType('X:/tools/Maya/windows/2014/python/UI/lightSets.ui')如何在不指定完整路径的情况下自动加载*.ui文件?我有很多系统变量,希望在这个文件系统路径中搜索。例如,当我在没有maya的python中工作时,只需指定let 'ui/aaa.ui'就可以找到该文件,因为路径的起点已经在运行python脚本以及子文件夹和文件中。
*.ui文件的第二个问题。QtDesigner在维护时为所有图片创建了这样的方式:
<property name="icon">
<iconset>
<normaloff>../../icons/close_btn.png</normaloff>
../../icons/close_btn.png
</iconset>
</property>当我在maya中加载这个文件时,她找不到这个相对路径的图片。我认为问题再次以同样的方式开始设置是不知道从哪里和相对已经从他得到错误。
现在,我必须指定所有图像的完整路径,这使得更改路径和传输脚本变得困难。一般来说,直接路径到所有的图标和资源,这是一个不好的方式。告诉我如何使用蟒蛇玛雅的相对路径?
例如,我想使用这个基本路径:
X:/tools/Maya/windows/2014/python/然后,只需为从该文件夹加载的所有数据指明相对路径。该怎么做呢?
发布于 2015-05-09 07:07:18
如果我正确理解你的帖子,这是我的建议:
PYTHONPATH适用于其他方面,比如导入模块,而不是作为字符串传递的任意文件。我会把PYTHONPATH变量放在一边,并设置一个新的变量。然后,我将使用以下方法访问Python中的新变量:
import maya.mel
my_path = maya.mel.eval("getenv MY_NEW_PATH") 并使用os.join将其添加到每个字符串路径:
import os
form, base = uic.loadUiType(os.join(my_path, 'python/UI/lightSets.ui'))发布于 2015-05-09 18:42:51
在这里熟悉os.walk()是个好主意:
items = []
for directory in list_of_dirs:
for root, _, files in os.walk(directory):
for f in files:
if f.endswith(".ui"):
items.append(uic.load(os.join(root, f),这将为list_of_dirs中任意目录下的任何位置的所有UI文件提供一个表单、基对列表。
https://stackoverflow.com/questions/30128717
复制相似问题