CentOS 7 安装 Python3.7
https://segmentfault.com/a/1190000015628625
1. 我们先看看现有的 python2在哪里
[root@lidan /]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python.bak /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
[root@lidan bin]# ll python*
lrwxrwxrwx. 1 root root 9 5月 27 2016 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 python2.7
lrwxrwxrwx. 1 root root 7 5月 27 2016 python.bak -> python2
2. 接下来我们要安装编译 Python3的相关包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
这里面有一个包很关键libffi-devel
,因为只有3.7才会用到这个包,如果不安装这个包的话,在 make 阶段会出现如下的报错:
# ModuleNotFoundError: No module named '_ctypes'
3. 安装pip,因为 CentOs 是没有 pip 的。
#运行这个命令添加epel扩展源
yum -y install epel-release
#安装pip
yum install python-pip
4. 可以用 python 安装一下 wget
pip install wget
5. 我们可以下载 python3.7的源码包了
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
#解压缩
tar -zxvf Python-3.7.0.tgz
#进入解压后的目录,依次执行下面命令进行手动编译
./configure prefix=/usr/local/python3
make && make install
如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录
6. 添加软链接
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7
#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3.7
#测试是否安装成功了
python -V
7. 更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用(不管安装 python3的那个版本,都必须要做的)
vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
8. virtualenv安装
[root@localhost ~]# pip3 install virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting virtualenv
如果出现以上信息,说明要安装openssl
yum install -y openssl openssl-devel
yum clean all
再次执行命令pip3 install virtualenv,发现还是同样的问题。
查阅资料发现,在./configure过程中,如果没有加上–with-ssl参数时,默认安装的软件涉及到ssl的功能不可用,刚好pip3过程需要ssl模块,而由于没有指定,所以该功能不可用。
解决办法是重新对python3.6进行编译安装,用一下过程来实现编译安装:
cd /usr/src/Python-3.6.5/
./configure --with-ssl --prefix=/usr/local/python3
make -j4 && make install
cd /root/
再次执行安装命令,就可以了
pip3 install virtualenv
提示以下信息:
You are using pip version 9.0.3, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
升级pip
[root@localhost ~]# pip3 install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 593kB/s
Installing collected packages: pip
Found existing installation: pip 9.0.3
Uninstalling pip-9.0.3:
Successfully uninstalled pip-9.0.3
Successfully installed pip-10.0.1
9. 安装virtualenvwrapper
pip3 install virtualenvwrapper
linux还需要安装一个包,否则找不到virtualenvwrapper.sh文件
yum install python-virtualenv -y
首选找到对应的virtualenvwrapper.sh文件的路径:
[root@localhost ~]# find / -name virtualenvwrapper.sh
/usr/local/python3/bin/virtualenvwrapper.sh
创建虚拟环境目录
mkdir /virtualenvs
找到路径之后在/etc/profile中进行配置:
vim /etc/profile
export WORKON_HOME=/virtualenvs
source /usr/local/python3/bin/virtualenvwrapper.sh
第一行:virtualenvwrapper存放虚拟环境目录
第二行:virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下
读入配置文件,立即生效
[root@localhost virtualenvs]# source /etc/profile
virtualenvwrapper.user_scripts creating /virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /virtualenvs/postmkproject
virtualenvwrapper.user_scripts creating /virtualenvs/initialize
virtualenvwrapper.user_scripts creating /virtualenvs/premkvirtualenv
virtualenvwrapper.user_scripts creating /virtualenvs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /virtualenvs/prermvirtualenv
virtualenvwrapper.user_scripts creating /virtualenvs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /virtualenvs/predeactivate
virtualenvwrapper.user_scripts creating /virtualenvs/postdeactivate
virtualenvwrapper.user_scripts creating /virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /virtualenvs/get_env_details
如果运行报错,如下:
/usr/bin/python: No module named virtualenvwrapper
请确保python版本为3.6。如何将系统的python版本替换为3.6,请参考文章
http://www.py3study.com/Article/details/id/320.html
10.使用虚拟环境
-
提示:如果不指定python版本,默认安装的是python2的虚拟环境
-
在python2中,创建虚拟环境
mkvirtualenv 虚拟环境名称 例 : mkvirtualenv py_django
-
在python3中,创建虚拟环境
mkvirtualenv -p python3 虚拟环境名称 例 : mkvirtualenv -p python3 py3_django
-
查看虚拟环境的命令 :
workon
- 退出虚拟环境的命令 :
deactivate
- 删除虚拟环境的命令 :
rmvirtualenv 虚拟环境名称
例 :删除虚拟环境py3_django
先退出:deactivate
再删除:rmvirtualenv py3_django