在 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__