背景
有一个功能需要在服务器上同时运行python2及python3的脚本,但是目前服务器只有python2的环境,所以抽时间断断续续研究了几天,主要还有其他开发任务,基本上没啥时间研究这个
前置条件,
- python 2.7.x
- centos 7.x
centos7.x默认的python为2.7,够用,但是需要安装的3个依赖有一个无法安装,必须升级pip,这个坑是爬的最久的
pip install pycryptodome
pip install pyelftools
pip install lz4
- python2.7升级pip,不然会导致依赖lz4不可安装
cd /home wget https://pypi.python.org/packages/45/29/8814bf414e7cd1031e1a3c8a4169218376e284ea2553cc0822a6ea1c2d78/setuptools-36.6.0.zip#md5=74663b15117d9a2cc5295d76011e6fd1 unzip setuptools-36.6.0.zip cd setuptools-36.6.0 python setup.py install wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9 tar -zxvf pip-9.0.1.tar.gz cd pip-9.0.1 python setup.py install pip install pycryptodome pip install pyelftools pip install lz4 #验证情况,没有任何提示,说明验证通过 python from Crypto.Hash import SHA256;
- python3安装
cd /home # 安装依赖包 yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel wget gcc make # 下载python3.7.3 wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz # 解压,进入 tar -zxvf Python-2.7.18.tgz cd Python-2.7.18 # 指定安装路径(文件夹不存在会自动创建),编译安装 ./configure --prefix=/usr/local/python3.7 make && make install # 安装完成后,所有文件会在指定的/usr/local/python3.7目录中 # 添加环境变量,方便使用 vim /etc/profile #添加python3变量 export PATH=$PATH:/usr/local/python3.7/bin # 重载环境变量生效 source /etc/profile #查看下python2版本 python -V #查看下python3版本 python3 -V #pip3不存在,需要安装 yum install python3-pip -y pip3 install pycryptodome pip3 install pyelftools pip3 install lz4 #验证情况,没有任何提示,说明验证通过 python3 from Crypto.Hash import SHA256; #如果运行还不成功,可能需要运行这个 pip install sha256 pip3 install sha256
参考来源:
Linux安装python2.7、pip和setuptools
Centos7 安装python3与python2.7 共存