如何附加到Maya Python路径?
我正在进行实际的Maya编程,并试图在我的电脑上设置“开发根目录”,我完全按照下面的说明操作,但不起作用-在键入“mayapy.exe”时,我收到警告“'mayapy.exe'未被识别为内部或外部命令、可操作程序或批处理文件。” 来自书中:如何附加到Maya Python路径?,python,maya,Python,Maya,我正在进行实际的Maya编程,并试图在我的电脑上设置“开发根目录”,我完全按照下面的说明操作,但不起作用-在键入“mayapy.exe”时,我收到警告“'mayapy.exe'未被识别为内部或外部命令、可操作程序或批处理文件。” 来自书中: [Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User") $env:PATH += ";C:\Program
[Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User")
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
让我们决定在哪里进行编码。在本书的其余部分中,我们将此位置称为开发根。简而言之,我将选择C:\mayapybook\pylib来存放所有Python代码
创建开发根文件夹,并在其中创建一个名为minspect.py的空文件
现在,我们需要将C:\mayapybook\pylib放到Python的sys.path上,以便导入它。最简单的方法是使用PYTHONPATH环境变量。通过Windows命令行,您可以运行以下操作来添加路径,并确保其正常工作:
> set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib
> mayapy.exe
>>> import sys
>>> 'C:\\mayapybook\\pylib' in sys.path
True
>>> import minspect
>>> minspect
<module 'minspect' from '...\minspect.py'>
所以书中的代码不起作用,但DrHaze的帖子中的代码似乎是:
PS C:\Users\Me> setx PATH "%PATH%C:\mayapybook\pylib\"
SUCCESS: Specified value was saved.
但是,当我运行Maya Python解释器并检查C:\mayapybook\pylib\是否在sys path中时,它返回false:
>>> 'C:\\mayapybook\\pylib' in sys.path
False
此错误“'mayapy.exe'未被识别为内部或外部命令、可操作程序或批处理文件。”
意味着mayapy.exe所在的路径未包含在路径
环境变量中。您的系统尝试查找PATH
变量中包含的所有文件夹,但找不到名为mayapy.exe
的可执行文件
可执行文件mayapy.exe
通常位于以下位置:
C:\Program Files\Autodesk\Maya(版本)\bin\mayapy.exe
在我的计算机上,它位于以下位置:C:\ProgramFiles\Autodesk\Maya2014\bin\mayapy.exe
要将mayapy.exe
位置添加到路径,请使用以下命令之一:
想永久改变它吗setx路径“%PATH%;C:\Program Files\Autodesk\Maya2014\bin\”
仅适用于cmd会话的当前实例设置路径“%PATH%;C:\Program Files\Autodesk\Maya2014\bin\”
编辑 您在编辑中显示的错误是问题的根源。Windows无法设置环境变量
PYTHONPATH
。因此,当您在sys.path中执行'C:\\mayapybook\\pylib'时,它返回False
sys.path
实际上包含PYTHONPATH
的值。这就是它返回False
的原因
现在,为什么它不能设置这个环境变量?
首先,我可以看到您正在使用Windows Powershell
,请记住这一点
我给你的命令是:
设置路径“%PATH%;C:\Program Files\Autodesk\Maya2014\bin\”
您写道:
set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib
应该是什么:
[Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User")
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
设置PYTHONPATH”%PYTHONPATH%;C:\mayapybook\pylib\“
语法有点不同,最后一个命令应该可以工作
作为说明,您的书提供了一些命令,可以在老式/老式windows终端中键入:cmd.exe
在使用Windows Powershell时,某些命令可能具有不同的语法。
现在您可以做的是:
- 使用
cmd.exe
(右键单击标题栏->属性以自定义它)
- 使用
Powershell
,但请记住语法可能与您的书中有所不同
如果您使用的是Powershell,则有不同的命令和策略用于管理环境变量
您可以使用SetEnvironmentVariable
您可以使用:$env:VARNAME为当前shell会话设置=
VARVALUE
您可以在powershell配置文件中放置用于设置变量的命令
文件
我赞成第三种选择。这三个方面的详情如下:
选项1。将目录“C:\mayapybook\pylib\”附加到现有
PYTHONPATH永久用于您的帐户:
[Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User")
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
选项2。将Maya bin文件夹仅附加到当前文件夹的路径
shell会话:
[Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User")
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
选项3。创建powershell配置文件并在其中设置环境变量。
首先,您需要确保powershell脚本可以在本地运行:
点击windows按钮,开始键入powershell,右键单击并以管理员身份打开。输入:
获取执行策略
如果显示为受限或AllSigned,请将其设置为RemoteSigned,如下所示:
Set-ExecutionPolicy RemoteSigned
关上那个外壳。现在在另一个powershell(非管理员)类型中:
将打开新powershell时要运行的任何命令粘贴到文件中:
Write-Host "Hello From Your Profile"
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
$env:PYTHONPATH += ";C:\mayapybook\pylib\"
现在,无论何时打开powershell,都会收到一条愚蠢的消息,这些路径将被设置。您可以通过键入以下内容进行测试:
Write-Host $env:PATH
或列出所有环境变量:
Get-ChildItem Env:
现在,您应该能够从maya bin目录运行命令。例如,键入:maya以启动maya
其他一些有用的powershell env var命令。感谢@DrHaze的帮助-尽管您的回答并没有完全解决我的问题。。现在,我已经使用上面的setx代码作为模板将我的路径设置为C\mayapybook\pylib\它返回了“SUCCESS:specified value saved”),然后我执行了mayapy.exe,现在在新加载的python解释器中,它仍然返回false到sys.pathi中的“C:\\mayapybook\\pylib”,我刚刚编辑了我的答案。如果你遇到任何麻烦,不要犹豫,再喊一声。谢谢!听起来很有希望。。我稍后再试试