ubuntu20.04安装python3.7,ubuntu20.04安装python3
由于需求,Python3.10需要用源代码编译。我已经将近十年没有编译Python源代码了。这些年一直用conda来创建Python环境,但是现在有一个代码需要和Python联合编译,于是我开始编译Python3.10源代码。
本文的操作系统环境是Ubuntu20.04,系统是全新安装的系统,所以本文的教程大部分情况下可以适配Ubuntu20.04系统。
具体操作如下:
git克隆https://github.com/python/cpython
cd cpython
git结帐3.10
sudo安装gcc
sudo适合安装品牌
sudo安装openssl
sudo apt安装libssl-dev
sudo apt安装libffi-dev
sudo apt安装zlib1g-dev
sudo apt安装构建-基本
sudo apt安装gcc g libffi-dev build-essential check install
sudo apt安装libreadline-GPL v2-dev libncursessw5-dev libssl-dev libsqlite 3-dev tk-dev libgdbm-dev libc 6-dev libbz 2-dev。/configure-with-py debug-enable-shared-prefix=/home/devil/python 3.10 make-j8
Make install大致解释了上面的操作:
下载源代码:
git克隆https://github.com/python/cpython
在源代码中切换到3.10版:
git结帐3.10
安装相关组件:
sudo安装gcc
sudo适合安装品牌
sudo安装openssl
sudo apt安装libssl-dev
sudo apt安装libffi-dev
sudo apt安装zlib1g-dev
sudo apt安装构建-基本
sudo apt安装gcc g libffi-dev build-essential check install
sudo apt安装libreadline-GPL v2-dev libncursessw5-dev libssl-dev libsqlite 3-dev tk-dev libgdbm-dev libc 6-dev libbz 2-dev
和编译:/configure-with-py debug-enable-shared-prefix=/home/devil/python 3.10 make-j8
需要注意的是-prefix=/home/devil/python3.10指的是编译后安装在哪个位置。/home/devil/python 3.10是我电脑上的位置,这个路径可以根据个人需要修改。
安装:
进行安装
===================================================
安装后:
为了使新安装的Python易于使用,我们可以修改。bashrc文件,并将新安装的Python的路径添加到PATH变量中:
给/home/devil/加点东西。bashrc文件:
导出路径=/home/devil/python 3.10/bin:$ PATH
同时,编译安装后在python3.10/bin的路径中设置软链接:
ln -s python3.10 python
ln -s管道3管道
可以看到,当我们在这个修改后默认调用Python时,我们重新编译了它。而且这里不建议将编译好的Python安装到系统默认路径下,这样就不需要在系统中修改shell的依赖关系了。而且我们一般都是在特定环境下编译Python进行开发和使用,所以需要什么版本的Python都可以轻松替换。
===================================================
请注意,如果在编译之前没有执行以下语句:
sudo apt安装gcc g libffi-dev build-essential check install
sudo apt安装libreadline-GPL v2-dev libncursessw5-dev libssl-dev libsqlite 3-dev tk-dev libgdbm-dev libc 6-dev libbz 2-dev
编译后的Python没有制表符补全功能。
转载请联系作者授权,否则将追究法律责任。评论0发表评论。
wx57cfbf9a3a9a8
2022-05-22 13:23
分享精彩干货,喜欢你的支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。