Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sys.path.append不';不能使用Python3.x_Python_Python 3.x - Fatal编程技术网

sys.path.append不';不能使用Python3.x

sys.path.append不';不能使用Python3.x,python,python-3.x,Python,Python 3.x,我有Blender 2.66a,它是一个提供Python3.3API的应用程序,在我的系统上我安装了Python3.2,其中包含我希望在Blender中使用的几个模块,我尝试了这两种方法 sys.path.append(r"/usr/lib/python3.2/") sys.path.append("/usr/lib/python3.2/") 这个命令没有错误,事实上,甚至自动完成功能也可以工作,并且新模块被索引,所以我尝试了 import tkinter 但这会产生以下错误 Traceba

我有Blender 2.66a,它是一个提供Python3.3API的应用程序,在我的系统上我安装了Python3.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
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3.2/tkinter/_init__.py”,第42行,在
引发导入错误(str(msg)+',请安装python tk包')
ImportError:没有名为“\u tkinter”的模块,请安装python tk包
我不明白这个错误的意义,因为它无法加载一个模块,它在那里要求我安装相同的模块,因为该模块没有安装(?)

是什么导致了这个模糊的问题


编辑


tkinter模块在gnome终端上工作

如果我没弄错,您使用的是Blender中的Python 3.3,但请尝试包含3.2标准库。这肯定会给你带来一连串的问题,你不应该这样做。另找一条路。Blender很可能提供了一种使用3.3标准库的方法(与3.2兼容率高达99%)。当然,纯Python第三方库可以通过摆弄
sys.path
来包含

您现在看到的具体问题可能是由版本差异引起的。正如人们在评论中指出的那样,Python3.3没有找到
\u tkinter
扩展模块。虽然它是存在的(因为它是从Python 3.2开始工作的),但它很可能是在一个.so文件中,其中包含一个与Blender的Python 3.3不兼容的,因此它甚至不会查看它(很像
模块。
导入模块
不考虑txt
这是一件好事。扩展模块具有高度的版本特定性,轻微的ABI不匹配(如3.2和3.3之间,或两个3.3之间使用不同选项编译)可能会导致几乎任何类型的错误,从崩溃到内存泄漏到静默数据损坏,甚至是完全不同的错误


您可以通过
import\u tkinter;在3.2 shell中打印(\u tkinter.\u文件)
。或者,
\u tkinter
可能位于完全不同的目录中。添加该目录实际上并不能解决上述实际问题。

如果我没弄错,您使用的是Blender中的Python 3.3,但请尝试包含3.2标准库。这肯定会给你带来一连串的问题,你不应该这样做。另找一条路。Blender很可能提供了一种使用3.3标准库的方法(与3.2兼容率高达99%)。当然,纯Python第三方库可以通过摆弄
sys.path
来包含

您现在看到的具体问题可能是由版本差异引起的。正如人们在评论中指出的那样,Python3.3没有找到
\u tkinter
扩展模块。虽然它是存在的(因为它是从Python 3.2开始工作的),但它很可能是在一个.so文件中,其中包含一个与Blender的Python 3.3不兼容的,因此它甚至不会查看它(很像
模块。
导入模块
不考虑txt
这是一件好事。扩展模块具有高度的版本特定性,轻微的ABI不匹配(如3.2和3.3之间,或两个3.3之间使用不同选项编译)可能会导致几乎任何类型的错误,从崩溃到内存泄漏到静默数据损坏,甚至是完全不同的错误


您可以通过
import\u tkinter;在3.2 shell中打印(\u tkinter.\u文件)
。或者,
\u tkinter
可能位于完全不同的目录中。添加该目录实际上不会解决上述实际问题。

这与
sys.path.append
不起作用无关。您缺少一个tkinter的C部分需要使用的库。@Wooble什么库?tkinter可以从常规控制台工作,也可以从该路径导入其他模块而不会出现错误您是否在控制台和Blender模块中检查了python的版本?它们可能是不同的,
python-tk
包可能只为特定版本安装。@Bakuriu如本文所述,3.2用于python操作系统安装(tkinter来自哪里),3.3用于Blender API(我试图将tkinter作为模块检索);顺便说一句,我不确定这是否是一个真正的问题,总是python3.xDid您试图向路径添加
/usr/lib/python3.2/lib dynload
?这就是
\u tkinter
模块在linux上的位置(至少在我的机器上)。无论如何,正如delnan所解释的,我认为它不会起作用。这与
sys.path.append
不起作用无关。您缺少一个tkinter的C部分需要使用的库。@Wooble什么库?tkinter可以从常规控制台工作,也可以从该路径导入其他模块而不会出现错误您是否在控制台和Blender模块中检查了python的版本?它们可能是不同的,
python-tk
包可能只为特定版本安装。@Bakuriu如本文所述,3.2用于python操作系统安装(tkinter来自哪里),3.3用于Blender API(我试图将tkinter作为模块检索);顺便说一句,我不确定这是否是一个真正的问题,总是python3.xDid您试图向路径添加
/usr/lib/python3.2/lib dynload
?这就是
\u tkinter
模块在linux上的位置(至少在我的机器上)。无论如何,正如delnan所解释的,我认为它不会起作用。显然,
\u tkinter
生活在
/usr/lib/python3.2/lib dynload/
下,但是将此路径附加到
sys.path
并不能解决任何问题,我认为这2个Python版本是不兼容的