在Linux上的虚拟环境中安装Tkinter,无需Sudo权限
在Linux上的虚拟环境中安装Tkinter而无需sudo访问权限的问题出现的原因是无法使用pip安装tkinter,因为tkinter是一个名为Tk的C++库的接口,而pip是用Python编写的。幸运的是,您不必担心上述说明,因为tkinter是标准Python发行版的内置库。因此,您需要做的是:
1. 进入您的虚拟环境目录:`cd到您的虚拟环境目录`
2. 激活虚拟环境:`source bin/activate`
3. 在其中访问您的Python shell:`python`
4. 然后导入tkinter:`import tkinter as tk`
注意:
根据您的设置,也许当您输入`python`时,您会注意到提示您使用Python 2.x。在这种情况下,只需输入:`import Tkinter as Tk`。然而,如果输入`python`导致您使用Python 3.x(如我在我的机器上设置的),但您更喜欢使用Python 2.x,则只需输入`python2`而不是`python`。
如果导入tkinter时出现错误:"No module named tkinter",一种常见的解决方法是设置TCL_LIBRARY环境变量,如此处所述。您使用的是Ubuntu吗?哪个版本?请将此信息添加到您的问题中。
我也尝试过`import Tkinter`,但也没有起作用。还尝试了TCL的方法,但是我在我的安装中没有看到任何tcl库。
请还参考此答案。
您指的是哪个答案?其中没有建议按照OP的要求安装tkinter,而我的答案是正确的。
对不起,你是对的。我没有仔细阅读OP的问题,所以错过了“没有sudo访问权限”这一点。如果您接受我的编辑,我将为您的答案投上赞成票,而不是下投票。
我欣赏您的诚实,我们都会犯错误,所以我不在乎负面投票,特别是如果有人试图为其辩护,就像您所做的那样。
无论如何,我已经投了赞成票。我认为一个真正优秀的软件工程师必须在理性上诚实。否则,会有错误。尽管我们无法完全消除错误,但我们至少希望将其数量最小化 :P
“您无法使用pip安装tkinter,因为tkinter是一个名为Tk的C++库的接口,而pip是用Python编写的”这个解释是错误且荒谬的。许多流行的Python库与C或C++代码进行接口交互,而pip本身是用Python编写的与它安装的软件无关。您无法使用pip安装tkinter的实际原因是,由于tkinter是标准库的一部分,因此它不会通过PyPI提供。pip用于安装第三方内容,而Tkinter不是第三方内容。
当Python安装中缺少Tkinter,并随后安装它(例如使用系统包管理器),这通常会在系统中添加Python代码和编译的C库。至少有三个层次:Tcl/Tk库(用C编写,专门用于从其他C代码中使用),_tkinter库(也用C编写,但从技术上讲可以从Python中导入),以及tkinter包(几个使用_tkinter在后台使用的Python文件)。
除此之外,这个答案的意思是“问题:如何在虚拟环境中安装它?答案:您不需要安装”,这只有在虚拟环境所基于的基本Python包括Tkinter时才有效。许多Python包并不包括Tkinter。如果OP没有sudo访问权限,则无法修改系统Python以添加Tkinter,因此无法从该Python创建支持Tkinter的虚拟环境。相反,必须使用用户级权限以任何可行的方式从源代码安装单独的Python。