编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

fedora37 下 pyenv 安装 python 常见问题汇总

wxchong 2024-09-12 21:54:29 开源技术 8 ℃ 0 评论
  1. pyenv 默认是从 python.org 上面下载源码进行安装的,但网速很慢,有时甚至下载不动。这时可以在 $HOME/.pyenv 目录下创建一个 cache 目录,并将自己下载好的python源码压缩包放进去,重新执行安装命令就会使用这个已经下载好的文件去安装了。
pip install -v 3.7.16

注意下载python源码时要用命令行提示的链接下载,比如下载 Python-3.7.16.tar.xz,命令行提示的链接是:

https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tar.xz

  1. 安装命令执行完后发现好多形如:ModuleNotFoundError: No module named '_xxx'

这样的错误,这里汇报一下缺少对应模块应该安装什么包。

缺少模块

安装命令

说明

_ctypes

sudo dnf install libffi-devel


readline

sudo dnf install readline-devel


_bz2

sudo dnf install bzip2-devel


_curses

sudo dnf install ncurses-devel


_lzma

sudo dnf install xz-devel


_sqlite3

sudo dnf install sqlite-devel


_tkinter

sudo dnf install python3-tkinter


  1. 如果遇到 can't decompress data; zlib not available 这样的错误提示,可以安装如下包:
sudo dnf install zlib-devel
  1. ModuleNotFoundError: No module named '_ssl'

这个比较在我实际安装时比较特殊,下面单独说一下安装 openssl 的步骤

# 1. 下载openssl安装文件
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
 
# 2. 解压openssl,并进入openssl的目录
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
 
# 3. 执行config脚本生成预编译文件
./config --prefix=/usr/local shared zlib
 
# 4. 编译、安装
sudo make
sudo make install

然后修改 ~/.bashrc~/.bash_profile 文件添加如下配置项:

# openssl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

修改后使用命令 source ~/.bashrc 或 source ~/.bash_profile 使其生效。

以上步骤设置完成后,就可以再用 pyenv 命令进行安装了,如果还是不行,可以尝试在命令行设置下面这些环境变量:

CONFIGURE_OPTS="-with-openssl=/usr/local"
CPPFLAGS="-I/usr/local/include"
LDFLAGS="-L/usr/local/lib"

最后再次执行 pyenv 的安装命令,就可以安装成功了。

pip install -v 3.7.16

以上就是我在 Fedora37 桌面版系统上通过 pyenv 安装 python 时遇到的问题。解决了上述的问题,python 就成功安装上了。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表