Centos7环境下安装python3以及相关问题总结
一、前言
centos7自带python2.7.5版本,但需要使用的python3的瓜瓜们就需要自己安装一个python3的环境。温馨提示尽量不要动系统自带的python,否则会带来不可预知的后果,至于是什么样的后果,想知道的同学可以以身试法,然后给各位博友们上图为证。(PS:可以在docker上开一个centos容器来验证一下)
二、步骤
- 源码安装python3 下载二进制文件
- 解压
- 配置安装路径
- 编译&&安装
- 添加环境变量
-
目的:
为了隔离python2和python3,更好的管理对应python版本的依赖
三、详细安装过程
1、 安装python3.6
-
安装前准备环境
yum -y install zlib zlib-devel gcc yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
下载二进制文件(我安装的版本是python3.6.4)
yum -y install zlib zlib-devel gcc wget --no-check-certificate https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
安装其他版本只需要修改url中的版本数字即可,如:
wget --no-check-certificate https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
-
解压&&配置安装路径
tar -zxvf Python-3.6.4.tar.xz cd Python-3.6.4/ ./configure --prefix=/usr/local/python3 --enable-optimizations make && make install
-
添加永久环境变量
在/etc/profile
中添加以下内容:export PATH="$PATH:/usr/local/python3/bin"
vi /etc/profile然后写入
export PATH="$PATH:/usr/local/python3/bin"
echo "export PATH=${PATH}:/usr/local/python3/bin" >> /etc/profile写入
source /etc/profile,使变量生效
export PATH="$PATH:/usr/local/python3/bin"终端结束后环境变量失效
2、使用python3打开python3 shell环境
-
修改/usr/bin/python3链接
# ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 # ln -sv /usr/local/python3/bin/pip3 /usr/bin/pip3
-
到此为止,在终端输入python可以打开python2.x,python3打开python3.x。pip3可用,pip不可用。可以使用
pip3 -V
查看版本,pip python2的版本在下一节centos7安装pip中介绍。 -
以下部分的内容,如果不想使用python命令打开python3的shell可以忽略
3、使用python打开python3
-
修改
/usr/bin/python
链接,使得可以使用python
打开python3
# cd/usr/bin # mv python python.bak # ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
-
将python2.7修改成python3后,yum命令会报错(如果解决办法中的两个步骤没完成的话,安装pip的时候会报错!)
yum报错: -
File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
- pip报错:
bash: pip: command not found
解决办法:
修改yum配置文件,将python版本指向以前的旧版本
输入
# vi /usr/bin/yum,进入yum文件中,把
#!/usr/bin/python修改成
#!/usr/bin/python2.7
修改urlgrabber-ext-down文件,更改python版本
输入
# vi /usr/libexec/urlgrabber-ext-down,进入文件中把
#!/usr/bin/python修改成
#!/usr/bin/python2.7
或者将pip软连接到pip3(pip,pip3使用的都是pip3):
ln -sv /usr/local/python3/bin/pip3 /usr/bin/pip
重新安装pip
yum -y install epel-release(pip对应python2,pip3对应python3)
-
执行成功之后,再次执行
yum install python-pip
四、 安装pip工具
yum -y install epel-release
- 执行成功之后,再次执行
yum install python-pip
- 对安装好的pip进行升级 pip install --upgrade pip (注意是两个短杆)
注意: 以上是python2.7的pip,python3 的/usr/bin 目录下有pip3创建pip3的软链接即可 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
- 配置完成后pip、pip3均可用
3、 -bash: /usr/bin/yum: /usr/bin/python: 坏的解释器: 没有那个文件或目录
将 /usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 文件的首行 #! /usr/bin/python 改为 #! /usr/bin/python.bak
/usr/bin/yum和/usr/libexec/urlgrabber-ext-down文件的首行的Python应指向Python2.7.5版本的位置
在我的环境中“#! /usr/bin/python.bak”是我的Python2.7.5的位置。
五、使用python虚拟环境
-
安装
pip install virtualenv
-
创建
virtualenv 名称
创建默认版本的虚拟环境 virtualenv --python=/usr/local/python3/bin/python3.6 myvenv
-
启动
source /myvenv/bin/activate
-
退出
deactivate
-
安装virtualenvwrapper
pip install virtualenvwrapper
- windows环境下:
pip install virtualenvwrapper-win
-
配置virtualenvwrapper环境变量
vim ~/.bashrc
打开文件,写入export WORKON_HOME=~/.virtualenvs source /usr/local/python3/bin/virtualenvwrapper.sh
-
source ~/.bashrc
-
使用mkvirtualenv 创建虚拟环境
mkvirtualenv test2
-
第一次安装完成后需要,先设置一个变量
WORKON_HOME
,它将作为所有环境的前缀,并且source /usr/local/bin/virtualenvwrapper.sh
mkdir -p $WORKON_HOME export WORKON_HOME=~/Envs source /usr/local/bin/virtualenvwrapper.sh
-
**注意:**同时安装了python2.7跟python3.6创建虚拟环境时有可能报错,则手动进入python3.6的安装路径/bin下,执行
source virtualwrapper.sh
,然后创建 -
virtualenvwrapper其他操作
-
创建环境
默认版本环境
mkvirtualenv env1
- 指定版本环境
mkvirtualenv --python=/usr/local/python3/bin/python3.6 myvenv
- 切换环境
workon env1
workon env2
- 列出已有环境
workon
- 退出环境
deactivate
-
创建project:项目将创建到PROJECT_HOME目录下,实际上相当于在某个目录下,建了一个环境。
mkproject
- 注意: 该命令要在
~/.bashrc
中写入export PROJECT_HOME=xxx
才生效 -
环境迁移:
pip freeze >requirments.txt
pip install -r requirements.txt
-
在docker中安装python3,存在以下报错
vi ~/.bashrc
写入以下内容export WORKON_HOME=~/Envs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv source /usr/bin/virtualenvwrapper.sh
-
错误信息:
ERROR: virtualenvwrapper could not find virtualenv in your path
出现这种错误,是因为 virtualenv 这个基础依赖包被安装在默认 Python 目录下,就需要做一个软连接 ln -s
-
直接在
~/.bashrc
文件中加入以下配置export WORKON_HOME=~/Envs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv source /usr/bin/virtualenvwrapper.sh
-
出现以上错误时,在shell输入
/usr/bin/virtualenv
,如果没有报错,则不是软连接的问题yum -y install which
安装which后,mkvirtualenv
命令可以正常使用
- CENTOS6.5环境下POSTGRESQL的安装与配置总结以及远程连接问题的解决
- 在CENTOS环境安装ASTERISK+FREEPBX常见问题以及解决办法
- OpenCV安装 问题总结以及相关注意事项
- [阿里云] Linux CentOS 7.4 环境下安装 MySql5.7 完整流程以及常见问题的解决方法
- 【Oracle数据库相关】Oracle数据库在CentOS6.5环境下的安装以及相关操作
- Deep Learning framework --- MexNet 安装,测试,以及相关问题总结
- centos安装mail命令以及mutt命令过程及问题总结
- 在CENTOS环境安装ASTERISK+FREEPBX常见问题以及解决办法
- WP7入门篇(三)编程环境搭建以及相关学习资源(解决安装问题篇)
- 在MacOS安装Caffe环境以及相关的问题
- 虚拟机CentOS环境下Hadoop伪分布模式的安装与配置问题总结
- Centos6.5_x86上Oracle11g2 32位的安装与卸载以及相关问题汇总
- linux系统下的jdk安装,环境变量配置以及tomcat的相关问题
- centos环境下moosefs(mfs)文件系统的安装部署以及碰到的问题(chunkserver启动时报错wrong meta id)
- CentOS 7 64位 安装Mysql 5.7的正确姿势以及相关问题解决
- 总结安装VMware和centOS6.5的相关问题。
- Mac安装python3以及问题总结
- windows环境下安装python MySQLdb遇到的问题以及解决方案
- Linux-CentOS安装N卡驱动以及解决屏幕亮度不可调问题
- Centos6.5基本环境以及jdk1.7安装配置(hadoop平台)