本文的命令都是在root账户下执行的,假如非root账号执行,提示没有权限,可在命令前加sudo。
一、安装Python3
1> 安装编译环境及相关类库
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2> 下载python3安装包
在https://www.python.org/ftp/python中选择想要安装的python版本,下载末尾为.tgz的文件。例如:https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
cd /usr/local/src
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
tar -zxvf Python-3.7.6.tgz (如果是*.tar.xz则用tar -xvJf,如果是
.tar.gz则用tar xzf
)
上面太慢可以用这个:
wget http://mirrors.sohu.com/python/3.7.6/Python-3.7.6.tgz
3> 新建Python3存放目录
mkdir -p /usr/local/python3
4> 安装Python3
进入解压目录,指定安装目录,安装Python3。
cd Python-3.7.6
./configure --prefix=/usr/local/python3
make && make install
安装python3时会自动安装pip。如果没有,需要自己手动安装。
yum -y install python-pip
如果想在任意路径下,输入 python3
就进入 python3 的环境,我们该怎么做呢?下面介绍两种实现方式:
环境变量方式
使用vim编辑器,编辑/etc/profile文件 vim /etc/profile
在文件的末尾,增加以下两行:
PATH=/usr/local/python3.6.5/bin:$PATH
export PATH
或:
echo 'export PATH=$PATH:/usr/local/python3/bin'>>/etc/profile
source /etc/profile
#通过查看python3版本,确定是否加入成功
python3 --version
默认的源安装较慢,可以更换源,具体更换方法点击查看:https://blog.csdn.net/CARL__Meng/article/details/104434899
软链接方式 ln -s /usr/local/python3.6.5/bin/python3 /usr/local/bin/python3
pip 命令也需要做一下软链接,就可以在任意目录下,用 pip3 命令安装各种模块和包了 ln -s /usr/local/python3.6.5/bin/pip3 /usr/local/bin/pip3
root用户的话:
-
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
-
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
如果出现下面的问题
ln: failed to create symbolic link '/usr/bin/python3':File exists
说明已经有链接链到 /usr/bin/python 上了,使用如下命令删除即可
rm -rf /usr/bin/python3
注意python后面不能加斜杠
安装完成。
1.为什么要搭建虚拟环境?
- 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
-
解决方案 : 虚拟环境
作用 : 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.
在开发过程中, 便于控制python的web框架或工具包的版本,创建多个虚拟环境,就相当于我们在一台电脑上拥有了多个python解释器。
二 、创建虚拟环境
使用pip 安装包前,先更新pip
pip3 install --upgrade pip
pip3 --version
1> 安装virtualenv、virtualenvwrapper
-
pip3 install virtualenv
-
pip3 install virtualenvwrapper
创建目录用来存放虚拟环境 mkdir $HOME/.virtualenvs(或者mkdir ~/.virtualenvs)
2> 进入.bashrc文件中,定义virtualenvwrapper路径
使用vim编辑.bashrc文件
vim ~/.bashrc 或者vim $home/.bashrc
在文末添加以下代码并保存
#virtualenvwrapper
#指定虚拟环境存放目录,.virtualenvs目录名可自拟
export WORKON_HOME=~/.virtualenvs
#指定virtualenvwrapper执行的python版本
export VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3
#virtualenvwrapper.sh文件所在目录
source /usr/local/python3/bin/virtualenvwrapper.sh (有的系统是:source /usr/local/bin/virtualenvwrapper.sh
)
4.查找python3的路径,并记住它
which python3
我的查询结果是:/usr/bin/python3
查找virtualenv的路径,并记住它
find / -name "virtualenv"
我的查询结果是:/usr/local/python3/bin/virtualenv
查找virtualenvwrapper.sh的路径,并记住它
find / -name "virtualenvwrapper.sh"
我的查询结果是:/usr/local/python3/bin/virtualenvwrapper.sh
5.修改.bashrc文件里面的配置
vim ~/.bashrc
在文末填入以下代码并保存
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 # 指定virtualenvwrapper执行的python版本
export WORKON_HOME=$HOME/.virtualenvs # 指定虚拟环境存放目录,.virtualenvs目录名可自拟
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenv
source /usr/local/python3/bin/virtualenvwrapper.sh # virtualenvwrapper.sh所在目录
刷新
source ~/.bashrc
3> 运行.bashrc 文件
source ~/.bashrc
4> 创建虚拟环境
# 创建虚拟环境
mkvirtualenv [--python=python解释器路径] 虚拟环境名
如:
mkvirtualenv py3-env
mkvirtualenv --python=/usr/bin/python3 py3-env
# 激活虚拟环境
workon test_env
workon + 两次tab键可以显示所有的虚拟环境
# 退出虚拟环境
deactivate
# 列出所有虚拟环境
lsvirtualenv
# 删除虚拟环境
rmvirtualenv
# 进入虚拟环境所在目录
cdvirtualenv
三、异常情况
加入source ~/.bashrc 时,提示以下错误
-bash:/usr/local/bin/virtualenvwrapper.sh:No such file or directory
【原因】
①查找virtualenvwrapper.sh所在目录
-
find / -name "virtualenvwrapper.sh"
-
>> /usr/local/python3/bin/virtualwrapper.sh
②把.bashrc文件的virtualenvwrapper.sh目录更换为实际所在目录
ubuntu18.04里,通过pip安装virtualenvwrapper得到的virtualenvwrapper.sh被安装在~/.local/bin/
目录下,需要修改上面添加在~/.bashrc的内容中的路径即可:
-
export WORKON_HOME=$HOME/.virtualenvs
-
source ~/.local/bin/virtualenvwrapper.sh
创建虚拟环境时,提示以下错误
ERROR: virtualenvwrapper could not find virtualenv in your path
【解决方案】
①查找virtualenv所在目录
-
find / -name "virtualenv"
-
>> /usr/local/python3/bin/virtualenv
②创建软链接
ln -s /usr/local/python3/bin/virtualenv/ /usr/local/bin/virtualenv
ubuntu14安装python3后,打开命令行界面总会提示:
/usr/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
有的文章说修改.bashrc中的VIRTUALENVWRAPPER_PYTHON,之后执行source .bashrc。这个方法对我本机没有起作用
之后查询:
http://www.itkeyword.com/doc/1445534594720488x414/usr-bin-python3-error-while-finding-spec-for-virtualenvwrapper-hook-loader
$ sudo pip3 install virtualenv virtualenvwrapper
$ source .bashrc
然后就没有提示了
安装过程中遇到的最大问题是:db4-devel和libpcap-devel依赖缺失
进入root账户完成以下操作
1. 安装依赖:
第一步:
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
遇到的问题是:在使用centOS8安装python3.9.1时无法找到db4-devel和libpcap-devel
注意:按照顺序安装
安装一个包:yum -ivh
升级一个包:yum -Uvh
第二步:wget db4-devel依赖
wget https://pkgs.dyn.su/el8/base/x86_64/libdb4-4.8.30-30.el8.x86_64.rpm
rpm -ivh libdb4-4.8.30-30.el8.x86_64.rpm
wget https://pkgs.dyn.su/el8/base/x86_64/libdb4-devel-4.8.30-30.el8.x86_64.rpm
rpm -ivh libdb4-devel-4.8.30-30.el8.x86_64.rpm
第三步:wget libpcap-devel依赖
wget http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages/libpcap-1.9.1-4.el8.x86_64.rpm
rpm -ivh libpcap-1.9.1-4.el8.x86_64.rpm
wget http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libpcap-devel-1.9.1-4.el8.x86_64.rpm
rpm -ivh libpcap-devel-1.9.1-4.el8.x86_64.rpm
备注:如出现错误,发现了之前版本的conflict,将-ivh改为-Uvh,对之前的依赖进行升级即可安装成功。
第四步:
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel