在 Maya 中导入 python 模块并被识别时出现问题
Problems importing a python module in Maya and it being recognized
仍在学习有关 Python 的某些事情...我在识别脚本目录中的 Python 脚本时遇到问题。首先,我检查我的路径是否设置正确:
import sys
for pythonPath in sys.path:
print pythonPath
并且列出了 C:/Users/..../Documents/maya/2014-x64/scripts
,这就是我放置 swap.py
的位置
在 Maya 的脚本编辑器中,我输入以下内容:
import swap
reload(swap)
swap.printSomething()
我得到:
错误:AttributeError:文件第 3 行:'module' 对象没有属性 'printSomething' #
如果我将相同的代码放入一个包中...
C:/Users/..../Documents/maya/2014-x64/scripts/swapPackage/swap.py
然后调用这个,就可以了...
import swapPackage.swap as swap
reload(swap)
swap.printSomething()
为什么?我完全糊涂了。 Mel 脚本甚至 运行 从这个位置也很好。我只是无法获得一个简单的 python 脚本来导入和 运行.
还有一点我注意到了。即使我可以将此脚本放在包中 运行 ,包名也必须与模块名完全不同。我不能有一个名为这个的包:
C:/Users/..../Documents/maya/2014-x64/scripts/swap/swap.py
但我可以有一个包名不同的:
C:/Users/..../Documents/maya/2014-x64/scripts/swapPackage/swap.py
好的伙计们,我能够通过打印我的 文件 来解决这个问题,结果发现它正在寻找一个完全不同的版本,有人在别处复制了它。啊。这解决了这两个问题,并且解释了为什么从模块更改包名称有效。
import swap
reload(swap)
print swap.__file__
仍在学习有关 Python 的某些事情...我在识别脚本目录中的 Python 脚本时遇到问题。首先,我检查我的路径是否设置正确:
import sys
for pythonPath in sys.path:
print pythonPath
并且列出了 C:/Users/..../Documents/maya/2014-x64/scripts
,这就是我放置 swap.py
在 Maya 的脚本编辑器中,我输入以下内容:
import swap
reload(swap)
swap.printSomething()
我得到:
错误:AttributeError:文件第 3 行:'module' 对象没有属性 'printSomething' #
如果我将相同的代码放入一个包中...
C:/Users/..../Documents/maya/2014-x64/scripts/swapPackage/swap.py
然后调用这个,就可以了...
import swapPackage.swap as swap
reload(swap)
swap.printSomething()
为什么?我完全糊涂了。 Mel 脚本甚至 运行 从这个位置也很好。我只是无法获得一个简单的 python 脚本来导入和 运行.
还有一点我注意到了。即使我可以将此脚本放在包中 运行 ,包名也必须与模块名完全不同。我不能有一个名为这个的包:
C:/Users/..../Documents/maya/2014-x64/scripts/swap/swap.py
但我可以有一个包名不同的:
C:/Users/..../Documents/maya/2014-x64/scripts/swapPackage/swap.py
好的伙计们,我能够通过打印我的 文件 来解决这个问题,结果发现它正在寻找一个完全不同的版本,有人在别处复制了它。啊。这解决了这两个问题,并且解释了为什么从模块更改包名称有效。
import swap
reload(swap)
print swap.__file__