在Linux上的虚拟环境中安装Tkinter,无需Sudo权限

18 浏览
0 Comments

在Linux上的虚拟环境中安装Tkinter,无需Sudo权限

我在Linux机器上使用virtualenv。我没有sudo权限,所以只能使用pip。我尝试了以下命令:pip install python-tk,但是出现了以下错误信息:

Collecting python-tk
Could not find a version that satisfies the requirement python-tk (from versions: )
No matching distribution found for python-tk

。我该如何在virtualenv上安装Tkinter?

0
0 Comments

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

0