RHEL / Pyenv:没有名为'_tkinter'的模块

问题描述 投票:2回答:1

我正在尝试使用pyenv安装版本的python 3.6.5在RHEL上使用Matplotlib。 (使用以下命令安装)

→ pyenv install 3.6.5

Installing Python-3.6.5...
python-build: use readline from homebrew
Installed Python-3.6.5 to /home/swp1g17/.pyenv/versions/3.6.5
→ pyenv global 3.6.5

我遇到了以下错误,并且发现了许多具有类似问题的问题:

Python 3.6.5 (default, Apr  5 2018, 17:22:36) 
[GCC 5.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/swp1g17/.pyenv/versions/3.6.5/lib/python3.6/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

但是,建议的解决方案通常是使用包管理器安装tkinter。但是我试过安装:

   2872  sudo yum install rh-python36-python-tkinter
   2873  sudo yum install rh-python35-python-tkinter                                                                                               
   2874  sudo yum install rh-python34-python-tkinter                                                                                               
   2891  sudo yum install tkinter                                                                                                                  
   2893  sudo yum install python36-tkinter                                                                                                         
   2902  sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel gdbm-devel ncurses-devel gl.. 
   2916  sudo yum install tkinter.x86_64 rh-python36-python-tkinter.x86_64 rh-python35-python-tkinter.x86_64 rh-python34-python-tkinter.x86_64 p.. 
   2921  sudo yum install tcl                                                                                                                      
   2933  sudo yum install tk-devel                                                                                                                 
   2934  sudo yum install tk                                                                                                                       
   3000  sudo yum install tkinter                                                                                                                  
   3026  sudo yum install tix                                                                                                                      
   3031  sudo yum install tk                                                                                                                       
   3032  sudo yum install tk-devel                                                                                                                 
>  3033  sudo yum install tcl-devel

每个已安装或没有任何区别(每次安装新包时重建python)。

系统python能够找到tkinter:

→ /usr/bin/python3.6
Python 3.6.3 (default, Jan  4 2018, 16:40:53) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 

所以我不确定如何使用pyenv安装python并让它使用相同版本的tkinter?


更新:发现可以使用$ PYTHON_CONFIGURE_OPTS设置构建配置选项我尝试使用(对于linuxbrew下载的tcl / tk)指定库位置:

export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes=-I/home/linuxbrew/.linuxbrew/opt/tcl-tk/include --with-tcltk-libs=-L/home/linuxbrew/.linuxbrew/opt/tcl-tk/lib"
pyenv install 3.6.5

和(使用系统tcl / tk):

export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes=-I/usr/include --with-tcltk-libs=-L/usr/lib64"
pyenv install 3.6.5

每个都没有运气。发现系统tcl / tk使用:

→ whereis tcl        
tcl: /usr/lib64/tcl8.5 /usr/include/tcl.h /usr/share/tcl8.5
→ whereis tcl        
tcl: /usr/lib64/tcl8.5 /usr/include/tcl.h /usr/share/tcl8.5
python tkinter rhel
1个回答
2
投票

下面是我在Ubuntu 19.04和Fedora 29上使用pyenv 1.2.11的一步一步的方法:

  1. 安装pyenv 使用安装程序 git clone https://github.com/pyenv/pyenv-installer chmod +x pyenv-installer/bin/pyenv-installer pyenv-installer/bin/pyenv-installer 用手 git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  2. 设置pyenv $ cat >> ~/.bashrc # Load pyenv automatically export PATH="~/.pyenv/bin:$PATH" eval "$(pyenv init -)" Ctrl + D. $ source ~/.bashrc $ pyenv --version pyenv 1.2.11-8-g070e1c85
  3. 安装依赖项 Ubuntu 19.04 Disco Dingo sudo apt install tk-dev # <-- This has fixed my issue sudo apt install libbz2-dev sudo apt install libreadline-dev sudo apt install libsqlite3-dev Fedora 29 sudo dnf install tk-devel # <-- This may fix your issue sudo dnf install libbz2-dev sudo dnf install readline-devel sudo dnf install libsqlite3x-devel sudo dnf install openssl-devel sudo dnf install make
  4. 使用pyenv安装Python-3.6.8 pyenv install 3.6.8
  5. 检查安装 $ pyenv local 3.6.8 # Create file .python-version $ python --version Python 3.6.8
  6. 安装模块 python -m pip install --user --upgrade pip python -m pip install --user pipenv ...
  7. pipenv用法示例 cd /path/where/your/Pipfile/is/located/ pyenv local 3.6.8 python -m pipenv --rm # first time: No virtualenv has been created... python -m pipenv update --dev python -m pipenv run python -m nose # my unit tests
© www.soinside.com 2019 - 2024. All rights reserved.