在本地安装tkinter和python

时间:2012-08-14 08:13:45

标签: python linux tkinter tcl tk

我在服务器上使用linux。我没有root权限。我在本地安装了python-3.2.3到“/ home / sam / install_sam”。当我导入tkinter模块。我收到以下错误:

ImportError: No module named _tkinter, please install the python-tk package

我知道我需要安装Tkinter模块。因为我没有root权限。我不能像以下命令一样使用:

apt-get install python-tk
sudo apt-get install python-tk

我在goolge上搜索。 我从 here获得tcl / tk。我安装它们使用以下命令。

cd ~/Downloads/tcl8.5.11/unix
./configure --prefix=/home/sam/install_sam/tcl
make
make install

cd ~/Downloads/tk8.5.11/unix
./configure --prefix=/home/sam/install_sam/tk 
            --with- tcl=/home/sam/Downloads/tcl8.5.11/unix
make
make install

cd ~/Downloads/Python3.2.3/
export LD_LIBRARY_PATH=/home/sam/install_sam/tcl/lib:/home/sam/install_sam/tk/lib
export LD_RUN_PATH=/home/sam/install_sam/tcl/lib:/home/sam/install_sam/tk/lib
./configure --prefix=/home/sam/install_sam/python 
make
make install

我仍然遇到错误:信息:无法找到Tcl / Tk库和/或标题。我应该如何配置python的tcl / tk

4 个答案:

答案 0 :(得分:5)

最后。我在同一路径中安装tcl / tk和python。它现在可以工作了。命令如下:

cd ~/Downloads/tcl8.5.11/unix
./configure --prefix=/home/sam/install_sam/python3
make
make install

cd ~/Downloads/tk8.5.11/unix
./configure --prefix=/home/sam/install_sam/python3
            --with-tcl=/home/sam/Downloads/tcl8.5.11/unix
make
make install

export LD_LIBRARY_PATH=/home/sam/install_sam/python3/lib
cd ~/Downloads/Python3.2.3/3
./configure --prefix=/home/sam/install_sam/python3 
make
make install

有人可以告诉我如何以第一种方式(在问题中提到)为python配置tcl / tk 。我会很感激

答案 1 :(得分:5)

在构建Python 3之前,使用CPPFLAGS环境变量为tcl和tk设置包含目录。这对我有用。

export CPPFLAGS="-I/home/sam/install_sam/tcl/include -I/home/sam/install_sam/tk/include"

答案 2 :(得分:0)

sudo apt-get install tcl-dev tk-dev

为我工作,虽然我最终拉了一个码头图像而不是使用它。

答案 3 :(得分:-1)

在我的情况下,我df["columnname"] = df["columnname"].astype(int) 在我的Python3环境中正常工作,但是我必须使用预编译的Python及其自己的环境(Blender fyi),其中不包含依赖项(我需要tkinter来运行import tkinter)。

我的解决方法非常简单:

  1. 工作 python中,matplotlib并检查其在import tkinter中的安装位置。类似于tkinter.__file__

  2. path/to/site-packages/tkinter文件夹复制到目标安装的tkinter

  3. 然后site-packages将不起作用。再次使用文件技巧,在我的Ubuntu中找到丢失的import _tkinter文件,类似于`path / to / python3.7 / lib-dynload / _tk​​inter.cpython-37m-x86_64-linux-gnu.so'< / p>

  4. 再次将.so文件复制到目标安装的相应.so中。 确保原始Python版本和目标Python版本都兼容

要确保您的目标python找到了复制的文件,请确保目标路径列在lib-dynload下。

希望这会有所帮助!
干杯,
安德烈斯