如何附加到Maya Python路径?

如何附加到Maya Python路径?,python,maya,Python,Maya,我正在进行实际的Maya编程,并试图在我的电脑上设置“开发根目录”,我完全按照下面的说明操作,但不起作用-在键入“mayapy.exe”时,我收到警告“'mayapy.exe'未被识别为内部或外部命令、可操作程序或批处理文件。” 来自书中: [Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User") $env:PATH += ";C:\Program

我正在进行实际的Maya编程,并试图在我的电脑上设置“开发根目录”,我完全按照下面的说明操作,但不起作用-在键入“mayapy.exe”时,我收到警告“'mayapy.exe'未被识别为内部或外部命令、可操作程序或批处理文件。”

来自书中:

[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\”
    想永久改变它吗
  • 设置路径“%PATH%;C:\Program Files\Autodesk\Maya2014\bin\”
    仅适用于cmd会话的当前实例

编辑 您在编辑中显示的错误是问题的根源。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”,我刚刚编辑了我的答案。如果你遇到任何麻烦,不要犹豫,再喊一声。谢谢!听起来很有希望。。我稍后再试试