CentOS 7 安装 Python3.7及虚拟环境

本文详细介绍了在CentOS7系统中从安装Python3.7到配置虚拟环境的全过程,包括:检查现有Python版本、安装依赖包、下载并编译Python3.7源码、创建软链接、修改yum配置、安装pip、virtualenv及virtualenvwrapper,以及解决过程中遇到的问题和解决方案。最后还展示了如何在Python3环境中创建和管理虚拟环境。
摘要由CSDN通过智能技术生成

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值