我正在通过实用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
答案 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
时,它会返回False
。 sys.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,则可以使用不同的命令和策略来管理环境变量。
SetEnvironmentVariable
$env:VARNAME =
VARVALUE
我会选择第三种选择。所有这三个都详述如下:
选项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。