centos下安装Python3和虚拟环境

本文的命令都是在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/profilesource /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用户的话:

  1. ln -s /usr/local/python3/bin/python3 /usr/bin/python3

  2. 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 pippip3 --version

1> 安装virtualenv、virtualenvwrapper

 
  1. pip3 install virtualenv

  2. 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.sh5.修改.bashrc文件里面的配置vim ~/.bashrc在文末填入以下代码并保存VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 # 指定virtualenvwrapper执行的python版本export WORKON_HOME=$HOME/.virtualenvs   # 指定虚拟环境存放目录,.virtualenvs目录名可自拟export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenvsource /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_envworkon   两次tab键可以显示所有的虚拟环境# 退出虚拟环境deactivate# 列出所有虚拟环境lsvirtualenv# 删除虚拟环境rmvirtualenv# 进入虚拟环境所在目录cdvirtualenv

三、异常情况

加入source ~/.bashrc 时,提示以下错误

-bash:/usr/local/bin/virtualenvwrapper.sh:No such file or directory

【原因】

①查找virtualenvwrapper.sh所在目录

  1. find / -name "virtualenvwrapper.sh"

  2. >> /usr/local/python3/bin/virtualwrapper.sh

②把.bashrc文件的virtualenvwrapper.sh目录更换为实际所在目录

ubuntu18.04里,通过pip安装virtualenvwrapper得到的virtualenvwrapper.sh被安装在~/.local/bin/目录下,需要修改上面添加在~/.bashrc的内容中的路径即可:

  1. export WORKON_HOME=$HOME/.virtualenvs

  2. source ~/.local/bin/virtualenvwrapper.sh

创建虚拟环境时,提示以下错误

ERROR: virtualenvwrapper could not find virtualenv in your path

【解决方案】

①查找virtualenv所在目录

 
  1. find / -name "virtualenv"

  2. >> /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

来源:https://www.icode9.com/content-3-806901.html

(0)

相关推荐