添加环境Python变量 简短问题:

添加环境Python变量 简短问题:,python,python-2.7,batch-file,path,maya,Python,Python 2.7,Batch File,Path,Maya,如何使用批处理脚本附加环境Python变量?我要做的是: import sys sys.path.append( 'E:\whatever\locallyScriptFolder' ) 但是使用批处理文件?我是个笨蛋 较长管道问题: 我需要在Maya中设置Python脚本管道。所有脚本都在我们的Perforce文件夹中。这里还有.bat文件,它将userSetup.py复制到用户本地驱动器。此userSetup.py在Maya启动时执行。我想从Perforce文件夹中启动脚本,但该文件夹对每

如何使用批处理脚本附加环境Python变量?我要做的是:

import sys

sys.path.append( 'E:\whatever\locallyScriptFolder' )
但是使用批处理文件?我是个笨蛋

较长管道问题: 我需要在Maya中设置Python脚本管道。所有脚本都在我们的
Perforce
文件夹中。这里还有
.bat
文件,它将
userSetup.py
复制到用户本地驱动器。此
userSetup.py
在Maya启动时执行。我想从
Perforce
文件夹中启动脚本,但该文件夹对每个用户都有不同的路径(有些文件夹在电子驱动器上,等等)。获得这些脚本的最佳方式是什么?是否要附加环境变量

示例:

C:\Users\nameouser\Documents\maya\2014-x64\scripts\**userSetup.py**

set PYTHONPATH=X:\RandomPath\Scripts
X:\RandomPath\Scripts\**scriptWantToCallFromUserSetup1.py**

set PYTHONPATH=X:\RandomPath\Scripts
X:\RandomPath\Scripts\**scriptWantToCallFromUserSetup2.py**

set PYTHONPATH=X:\RandomPath\Scripts

当Python启动时,
PYTHONPATH
中的任何内容都将添加到
sys.path

@JohnZwinck的答案应该适用于从批处理文件运行Python-它将为bat文件的生存期以及由bat文件启动的任何内容设置变量。但是,它不是永久性的:当bat文件运行完成时,设置将恢复到其原始状态。如果在python中更改sys.path或os.environ,情况也是如此

也就是说,从您的描述听起来,您不需要更改批处理文件中的路径,您需要在userSetup.py中更改它。最好的方法是在perforce中的userSetup.py主副本中添加几行,如下所示:

import site
site.addsitedir("x:/path/to/perforce/directory") 
# you can add more folders the same way
在此版本中,批处理文件仅将userSetup.py复制到用户的Maya目录并运行Maya;userSetup.py设置Maya需要的所有路径。这比批处理文件好,因为(a)批处理文件很蹩脚,(b)如果使用,可以添加大量额外的目录

有关此主题的更多背景信息:

  • 你做到了

因此,当我:
print sys.path
时,X:\RandomPath\Scripts不会显示,当我尝试
import ExportScript
时,我会得到
没有名为ExportScript
的模块,即使它在路径文件夹中。如果我使用
sys.path.append('X:\RandomPath\Scripts')
,它就会工作。但是,当我使用
print os.environ
时,路径确实会显示在
MAYA\u SCRIPT\u path
下。我不太了解环境路径。我做错了什么?谢谢您的意思是,如果在启动Python之前设置了PYTHONPATH,那么您在其中设置的路径不会出现在sys.path中?据我所知,它应该是有效的;看这里:谢谢西奥多。这就是我想要的。问题是路径对于每个用户都是相对的。我希望批处理文件能够保存该相对路径,而无需用户执行任何操作。我觉得我的任务有点不清楚-我有点不确定我到底想做什么。我最终采用的解决方案是使用批处理文件userSetup.py和一个脚本来复制,该脚本允许用户设置其相对路径(将其保存为XML,然后在启动时添加该环境路径)。