我有Blender 2.66a这是一个提供Python 3.3 API的应用程序,在我的系统上我安装了Python 3.2,其中有几个模块我希望在Blender中使用,我试过两个
sys.path.append(r"/usr/lib/python3.2/")
sys.path.append("/usr/lib/python3.2/")
并且这个命令没有错误,事实上即使自动完成功能工作,新模块也被索引,所以我试过
import tkinter
但这会产生以下错误
Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
File "/usr/lib/python3.2/tkinter/__init__.py", line 42, in <module>
raise ImportError(str(msg) + ', please install the python-tk package')
ImportError: No module named '_tkinter', please install the python-tk package
我没有明白这个错误,因为它无法加载一个模块,因为那个模块没有安装(?)而要求我安装相同的模块。
什么可能导致这个模糊的问题?
修改
tkinter模块在gnome-terminal
中运行答案 0 :(得分:3)
如果我说得对,那你就是从Blender使用Python 3.3但是试图包含3.2标准库。这肯定会给你带来一系列问题,你应该不这样做。找另一种方式。 Blender很可能提供了一种使用3.3标准库的方法(并且这与99%的兼容性为99)。当然,可以通过摆弄sys.path
来包含纯Python第三方库。
您现在看到的具体问题可能是版本差异造成的。正如人们在评论中指出的那样,Python 3.3没有找到_tkinter
扩展模块。虽然它存在(因为它适用于Python 3.2),但很可能在。ABI tag的.so文件中与Blender的Python 3.3不兼容,因此它甚至看起来都不会在它(很像module.txt
不考虑import module
)。 这是一件好事。扩展模块是高度版本特定的,轻微的ABI不匹配(例如3.2和3.3之间,或者两个3.3使用不同的选项编译)可能会导致几乎任何类型的错误,从崩溃到内存泄漏到静默数据损坏甚至是完全不同的东西。
您可以通过3.2 shell中的import _tkinter; print(_tkinter.__file__)
验证是否属于这种情况。或者,_tkinter
可能完全位于不同的目录中。添加该目录实际上无法解决上述实际问题。