要在CentOS 7上打包一个独立的Python 3环境,可以使用virtualenv和pip工具的组合。下面是一些步骤:
安装所需的依赖项:为了编译和安装Python,你需要安装一些依赖项。运行以下命令来安装这些依赖项:
yum install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel gcc-c++
mkdir my_python3.8
cd my_python3.8
wget http://npm.taobao.org/mirrors/python/3.8.0/Python-3.8.0.tgz
tar -xzf Python-3.8.0.tgz
cd Python-3.8.0
配置SSL
[root@bhs Modules]# pwd
/Python-3.8.0/Modules
vi Setup 或者 vi Setup.dist 文件如下5行去掉其注释
_socket socketmodule.c
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
/root/my_python3.8/Python-3.8.0
./configure --prefix=/opt/python3
make -j8
sudo make altinstall
make -j8
是一个命令,它用于并行编译。在这个命令中,-j8
参数告诉make
使用8个线程并行编译代码。这将加快编译的速度,特别是当编译任务非常繁重、需要大量时间时。
make
是一个常用的编译工具,通常用于编译和安装源代码。它可以根据Makefile文件中的规则来自动化编译过程。
make altinstall
命令,您可以在系统中同时拥有多个Python版本
命令解释:
在Linux中通过源码安装程序时,对于解压文件,先执行./configure,后执行make,最后执行make install
make 命令 是对makefile文件操作,make install 是安装命令,那么 ./configure 是干什么呢?./configure 其实就是生成 makefile 文件
–prefix作用:编译的时候用来指定程序存放路径。
不指定prefix,可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share
指定prefix,直接删掉一个文件夹就够了
创建python3软链
ln -s /usr/local/python3/bin/python3 /usr/bin/python3.9
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3.9
或者添加环境变量
修改 /etc/profile 文件,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/python3.8/bin
export PATH
修改 pip源
mkdir -p ~/.pip
vim ~/.pip/pip.conf
[global]
timeout = 6000
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
现在,你可以将整个虚拟环境打包为一个独立的文件夹,以便将其移动到其他机器上。运行以下命令:
tar -czvf myenv.tar.gz myenv
现在,你已经成功地打包了一个Python 3环境。将生成的myenv.tar.gz文件拷贝到目标机器上,并运行以下命令进行解压:
tar -xzvf myenv.tar.gz
然后进入解压的文件夹,激活myenv虚拟环境并通过pip工具安装依赖项即可。
其它工具
pyenv和virtualenv
卸载yum安装的python
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
删除所有残余文件
whereis python3 |xargs rm -frv
whereis python 查看现有安装的python