linux 在本地安装tkinter和python

ijnw1ujt  于 2023-04-29  发布在  Linux
关注(0)|答案(5)|浏览(584)

我在一个服务器上使用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

我在谷歌上搜索。我从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

8xiog9wr

8xiog9wr1#

在构建Python 3之前,使用CPPFLAGS环境变量设置tcl和tk的include目录。这对我很有效。

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

vcirk6k62#

最后,我把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 *。我会很感激的

vxbzzdmp

vxbzzdmp3#

sudo apt-get install tcl-dev tk-dev

对我来说很有效,尽管我最终拉了一个docker镜像并使用它。

ct3nt3jp

ct3nt3jp4#

对于CentOS,这是:

yum install -y tcl-devel tk-devel

使用CentOS 7。
一般来说,我发现RHEL有*-dev,CentOS有*-devel

4ktjp1zp

4ktjp1zp5#

在我的例子中,我让import tkinter在我的Python3环境中正常工作,但是我必须使用一个预编译的Python,它有自己的环境(Blender fyi),不包括依赖项(我需要tkinter来运行matplotlib)。
我的解决办法很简单:
1.在workingpython中,import tkinter并检查它与tkinter.__file__安装在哪里。这将类似于path/to/site-packages/tkinter
1.将tkinter文件夹复制到目标安装的site-packages
1.那么import _tkinter就不工作了。再次使用文件技巧,找到丢失的.so文件,在我的Ubuntu中类似于path/to/python3。7/lib-dynload/_tkinter。cpython-37m-x86_64-linux-gnu。所以 1.再次,将.so文件复制到目标安装的相应lib-dynload中。**确保源Python版本和目标Python版本兼容**。 要确保目标python找到复制的文件,请确保目标路径列在sys.path`下。
希望这有帮助!
干杯
安德烈斯

相关问题