我如何附加到 Maya PYTHONPATH?
How do i append to the Maya PYTHONPATH?
我正在学习 Practical Maya Programming,并尝试在我的 PC 上设置 'development root',我完全按照说明(如下)进行操作,但它不起作用 - 在我输入 '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 post 中的代码似乎:
PS C:\Users\Me> setx PATH "%PATH%C:\mayapybook\pylib\"
SUCCESS: Specified value was saved.
但是当我 运行 Maya Python 解释器并检查 C:\mayapybook\pylib\ 是否在系统路径中时 returns false:
>>> 'C:\mayapybook\pylib' in sys.path
False
这个错误"'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 session. 的当前实例
编辑
您在编辑中显示的错误是问题的根源。 Windows 未能设置环境变量 PYTHONPATH
。因此,当您执行 'C:\mayapybook\pylib' in sys.path
时,它会 returns False
。 sys.path
实际上包含 PYTHONPATH
的值。这就是为什么 returns False
.
现在,为什么设置这个环境变量失败了?
首先我看到你在使用Windows Powershell
,记住这一点。
我给你的命令是:
set PATH "%PATH%;C:\Program Files\Autodesk\Maya2014\bin\"
您写道:
set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib
应该是什么:
set PYTHONPATH "%PYTHONPATH%;C:\mayapybook\pylib\"
语法有点不同,最后一条命令应该可以。
作为解释,您的书为您提供了一些命令,可在 vintage/old-style windows 终端中键入:cmd.exe
当您使用 Windows Powershell
时,某些命令可能具有不同的语法。
现在你可以做的是:
- 使用
cmd.exe
(右击标题栏->属性自定义)
- 使用
Powershell
但请记住,语法可能与您书中的语法略有不同
如果您使用的是 Powershell,可以使用不同的命令和策略来管理环境变量。
- 您可以使用
SetEnvironmentVariable
永久设置变量
- 您可以为当前 shell 会话设置:
$env:VARNAME =
VARVALUE
- 您可以将设置变量的命令放在 powershell 配置文件中
文件。
我会选择第三个选项。这三者的详细信息如下:
选项 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. 创建电源shell 配置文件并在那里设置环境变量。
首先,您需要确保 powershell 脚本可以在本地 运行:
点击 windows 按钮,开始输入 powershell,右键单击并以管理员身份打开。进入:
获取执行策略
如果显示为 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
每当打开新的电源shell时,将您想要运行的任何命令粘贴到文件中:
Write-Host "Hello From Your Profile"
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
$env:PYTHONPATH += ";C:\mayapybook\pylib\"
现在,无论何时打开电源shell,您都会收到一条愚蠢的消息,并且会设置这些路径。您可以输入以下内容进行测试:
Write-Host $env:PATH
或列出所有环境变量:
Get-ChildItem Env:
您现在应该可以从 maya bin 目录中 运行 命令。例如,键入:maya 以启动 maya。
一些其他有用的功能shell env var 命令here。
我正在学习 Practical Maya Programming,并尝试在我的 PC 上设置 'development root',我完全按照说明(如下)进行操作,但它不起作用 - 在我输入 '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 post 中的代码似乎:
PS C:\Users\Me> setx PATH "%PATH%C:\mayapybook\pylib\"
SUCCESS: Specified value was saved.
但是当我 运行 Maya Python 解释器并检查 C:\mayapybook\pylib\ 是否在系统路径中时 returns false:
>>> 'C:\mayapybook\pylib' in sys.path
False
这个错误"'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 session. 的当前实例
编辑
您在编辑中显示的错误是问题的根源。 Windows 未能设置环境变量 PYTHONPATH
。因此,当您执行 'C:\mayapybook\pylib' in sys.path
时,它会 returns False
。 sys.path
实际上包含 PYTHONPATH
的值。这就是为什么 returns False
.
现在,为什么设置这个环境变量失败了?
首先我看到你在使用Windows Powershell
,记住这一点。
我给你的命令是:
set PATH "%PATH%;C:\Program Files\Autodesk\Maya2014\bin\"
您写道:
set PYTHONPATH=%PYTHONPATH%;C:\mayapybook\pylib
应该是什么:
set PYTHONPATH "%PYTHONPATH%;C:\mayapybook\pylib\"
语法有点不同,最后一条命令应该可以。
作为解释,您的书为您提供了一些命令,可在 vintage/old-style windows 终端中键入:cmd.exe
当您使用 Windows Powershell
时,某些命令可能具有不同的语法。
现在你可以做的是:
- 使用
cmd.exe
(右击标题栏->属性自定义) - 使用
Powershell
但请记住,语法可能与您书中的语法略有不同
如果您使用的是 Powershell,可以使用不同的命令和策略来管理环境变量。
- 您可以使用
SetEnvironmentVariable
永久设置变量
- 您可以为当前 shell 会话设置:
$env:VARNAME = VARVALUE
- 您可以将设置变量的命令放在 powershell 配置文件中 文件。
我会选择第三个选项。这三者的详细信息如下:
选项 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. 创建电源shell 配置文件并在那里设置环境变量。
首先,您需要确保 powershell 脚本可以在本地 运行: 点击 windows 按钮,开始输入 powershell,右键单击并以管理员身份打开。进入: 获取执行策略
如果显示为 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
每当打开新的电源shell时,将您想要运行的任何命令粘贴到文件中:
Write-Host "Hello From Your Profile"
$env:PATH += ";C:\Program Files\Autodesk\Maya2016\bin\"
$env:PYTHONPATH += ";C:\mayapybook\pylib\"
现在,无论何时打开电源shell,您都会收到一条愚蠢的消息,并且会设置这些路径。您可以输入以下内容进行测试:
Write-Host $env:PATH
或列出所有环境变量:
Get-ChildItem Env:
您现在应该可以从 maya bin 目录中 运行 命令。例如,键入:maya 以启动 maya。
一些其他有用的功能shell env var 命令here。