我在一个服务器上使用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
5条答案
按热度按时间8xiog9wr1#
在构建Python 3之前,使用CPPFLAGS环境变量设置tcl和tk的include目录。这对我很有效。
vcirk6k62#
最后,我把tcl/tk和python安装在同一个路径。它现在可以工作。命令如下:
有人可以告诉我**如何用第一种方式(问题中提到的)为python配置tcl/tk *。我会很感激的
vxbzzdmp3#
对我来说很有效,尽管我最终拉了一个docker镜像并使用它。
ct3nt3jp4#
对于CentOS,这是:
使用CentOS 7。
一般来说,我发现RHEL有
*-dev
,CentOS有*-devel
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`下。希望这有帮助!
干杯
安德烈斯