linux 一行命令安装python3.7 & python3.8 & python3.9 & python3.10

最近一般都是这样在ubuntu上安装Python3.9的(安装耗时约0.5h)

git clone https://github.com/waketzheng/carstino.git
cd carstino
python -V || apt install python-is-python3
python upgrade_py.sh 3.9   # 不指定版本则默认安装python3.11
# python3.12可以这么安装: python upgrade_py.py 3.12
# python3.8可以这么安装: python upgrade_py.sh 3.8

注:Mac系统的话,直接brew install python@3.12就行 

---------------------------------------------------------------------------------------------

最近(2019-03-28)在ubuntu18上是这样安装python3.6的,效果很不错,参考的是这个:install-python-3-6-ubuntu-linuxmint

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
sudo tar xzf Python-3.6.8.tgz
cd Python-3.6.8
sudo ./configure --enable-optimizations
sudo make altinstall
python3.6 -V
pip3.6 -V
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0b2.tar.xz
tar xvf Python-3.8.0b2.tar.xz
cd Python-3.8.0b2
sudo ./configure --enable-optimizations
sudo make altinstall
python3.8 -V

2019-07-11 succeed to install python3.8beta in ArchLinux.

============================================

>>> 装完python后pip install有点慢?看看这个:pipenv换源、pipenv换阿里源、pip换源、pip换豆瓣源

如果安装python过程中报这个错误:

ModuleNotFoundError: No module named '_ctypes'

可通过安装libffi(-dev[el])

Issue 31652: make install fails: no module _ctypes - Python tracker

来解决(安装完重新运行sudo make altinstall),Ubuntu用这个命令:

sudo apt install libffi-dev

centos是这个:

sudo yum install libffi-devel

更周全的方法是不单安装libffi(-dev[el])

还安装其他python开发所需的包(Ubuntu):

sudo apt update -y
sudo apt install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev python3-dev python3-smbus

centos:

sudo yum update -y
sudo yum groupinstall -y "development tools"
sudo yum install zlib zlib-devel bzip2-devel openssl openssl-devel libffi-devel ncurses-devel xz-devel  python3-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel expat-devel

方法二:从国内的网站下载安装包,适合访问python官网比较慢或访问不到的情况:

wget那一步后面的URL地址改成HW镜像源上对应的地址即可 Index of python-local

===============================================================

安装过程如果遇到这个错误:

zipimport.ZipImportError: can't decompress data; zlib not available

编辑文件 Python-3.7.2/Modules/Setup

查找zlib,去掉第338行zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz前面的#,保存

然后重新运行:

cd Python-3.7.2 && make && sudo make altinstall

------------------------------------------------

如果遇到了./Modules/zlibmodule.c:10:10: fatal error: zlib.h: No such file or directory

ubuntu中通过安装这个解决了(安装后需要重新make和make altinstall):

sudo apt-get install zlib1g-dev

如果是报sqlite3导入失败,参考这个 ​​​​​​新安装的Python报错 No module named ‘_sqlite3‘_jaket5219999的博客-CSDN博客

报ssl错误,参考这个:2021-10-16 Python SSL module is not available_jaket5219999的博客-CSDN博客

### 安装和配置特定版本的Python 对于希望在Mac上安装并配置介于Python 3.10Python 2.7之间的特定版本的需求,推荐使用`pyenv`工具来管理多个Python版本。通过这种方式可以在同一台机器上轻松地安装、管理和切换不同的Python解释器版本。 #### 使用PyEnv安装特定版本的Python 为了实现这一点,首先需要确保已经安装了`pyenv`。如果尚未安装,则可以通过Homebrew等包管理器来进行安装: ```bash brew update brew install pyenv ``` 一旦`pyenv`被正确设置好之后,就可以利用它来下载并编译所需的Python版本。例如,想要安装Python 3.8.10版本,可以执行如下命令: ```bash pyenv install 3.8.10 ``` 此过程同样适用于其他具体的小版本号,只要是在官方支持范围内即可[^1]。 #### 设置全局或局部默认Python版本 完成上述操作后,能够设定某个具体的Python版本作为系统的全局默认版本或是针对个别项目的本地版本。设为全局的方式如下所示: ```bash pyenv global 3.8.10 ``` 而如果是想仅限于当前工作目录下的项目生效的话,则应采用下面这条指令代替: ```bash pyenv local 3.8.10 ``` 这样做的好处在于不会影响到系统自带或其他已有的Python环境,同时也方便后续根据不同需求快速调整所使用的Python版本。 #### 解决可能遇到的问题 当尝试安装某些较老版本(比如接近2.7系列)或者是遇到了与SSL模块有关的问题时,可能会碰到缺少必要的构建依赖项的情况。此时应当先确认Xcode Command Line Tools已被安装,并考虑更新或重新安装一些基础库文件以满足编译条件。对于OpenSSL相关问题,可通过以下方式解决: ```bash brew install openssl readline sqlite3 xz zlib export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include" ``` 以上措施有助于避免因缺失必要组件而导致的编译失败等问题[^4]。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值