我如何追加Maya PYTHONPATH?

时间:2015-10-27 07:34:41

标签: python maya

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

来自书:

让我们决定在哪里进行编码。我们将此位置称为本书其余部分的开发根。简而言之,我将选择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'>

修改

这就是我现在的工作方式:

PS C:\Users\Me> set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib
C:\mayapybook\pylib : The term 'C:\mayapybook\pylib' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:1 char:29
+ set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib
+                             ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\mayapybook\pylib:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

所以书中的代码不起作用,但DrHaze的帖子中的代码似乎是:

PS C:\Users\Me> setx PATH "%PATH%C:\mayapybook\pylib\"

SUCCESS: Specified value was saved.

但是当我运行Maya Python解释器并检查C:\ mayapybook \ pylib \是否在sys路径中时它返回false:

>>> 'C:\\mayapybook\\pylib' in sys.path
False

2 个答案:

答案 0 :(得分:4)

此错误"'mayapy.exe' is not recognized as an internal or external command, operable program or batch file."表示mayapy.exe所在的路径未包含在PATH环境变量中。您的系统会尝试查看PATH变量中包含的所有文件夹,但无法找到名为mayapy.exe的可执行文件。

可执行文件mayapy.exe通常位于此处:

C:\Program Files\Autodesk\Maya(VERSION)\bin\mayapy.exe 在我的电脑上,它位于C:\Program Files\Autodesk\Maya2014\bin\mayapy.exe

要将mayapy.exe位置添加到路径,请使用以下命令之一:

  • setx PATH "%PATH%;C:\Program Files\Autodesk\Maya2014\bin\"如果你 想永久改变它
  • set PATH "%PATH%;C:\Program Files\Autodesk\Maya2014\bin\"仅适用于cmd会话的当前实例。

修改

您在编辑中显示的错误是问题的根源。 Windows无法设置环境变量PYTHONPATH。因此,当您执行'C:\\mayapybook\\pylib' in sys.path时,它会返回Falsesys.path实际上包含PYTHONPATH的值。这就是它返回False的原因。

现在,为什么无法设置此环境变量?

首先,我可以看到您正在使用Windows Powershell,请记住这一点。

我给你的命令是:

set PATH "%PATH%;C:\Program Files\Autodesk\Maya2014\bin\"

您写道:

set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib

它应该是什么:

set PYTHONPATH "%PYTHONPATH%;C:\mayapybook\pylib\"

语法略有不同,最后一个命令应该有效。

作为解释,你的书给你一些命令来输入老式/旧式的windows终端:cmd.exe 在使用Windows Powershell时,某些命令可能具有不同的语法。 现在你能做的是:

  • 使用cmd.exe(右键单击标题栏 - &gt;属性进行自定义)
  • 使用Powershell但请注意,语法可能与您的书中的语法略有不同

答案 1 :(得分:1)

如果您使用的是Powershell,则可以使用不同的命令和策略来管理环境变量。

  1. 您可以使用SetEnvironmentVariable
  2. 永久设置变量
  3. 您可以使用以下代码设置当前的shell会话:$env:VARNAME = VARVALUE
  4. 您可以将命令设置为在PowerShell配置文件中设置变量 文件。
  5. 我会选择第三种选择。所有这三个都详述如下:

    选项1.将目录“C:\ mayapybook \ pylib \”附加到现有目录     PYTHONPATH永久为您的帐户

    [Environment]::SetEnvironmentVariable("PYTHONPATH", $env:PYTHONPATH +";C:\mayapybook\pylib\", "User")
    

    选项2.将Maya bin文件夹仅附加到PATH以获取当前值     shell会话:

    $env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
    

    选项3.创建一个powershell配置文件并在那里设置您的环境变量。

    首先,您需要确保powershell脚本可以在本地运行: 点击Windows按钮,开始输入powershell,右键单击并以管理员身份打开。输入:     得到-ExecutionPolicy

    如果是Restricted或AllSigned,请将其设置为RemoteSigned,如下所示:

    Set-ExecutionPolicy RemoteSigned
    

    关闭那个shell。现在在另一个powershell(而不是管理员)类型:

    cd ~\Documents
    md WindowsPowerShell
    cd WindowsPowerShell
    New-Item -path "profile.ps1" -type file
    notepad.exe profile.ps1
    

    在打开新的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
    

    或列出所有env vars:

    Get-ChildItem Env:
    

    您现在应该能够从maya bin目录运行命令。例如,键入:maya to may maya。

    其他一些有用的powershell env var命令here