Linux

  • 参考文献1 :https://www.jianshu.com/p/15f40edefb13;
  • 参考文献2:https://pythonav.com/wiki/detail/3/31/

1、创建文件夹

  • mkdir filename
mkdir data

2、安装Python

2.1 查看当前Python版本

  • 默认版本是2.7

2.2 安装依赖

如果要正确安装python3,且使用python3的功能,需提前解决如下的环境依赖的问题

yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

2.3 下载解压安装包

# 下载
wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz
  • 解压

tar -zxvf Python-3.8.7.tgz

![image-20211108094105237](https://typora-imgs-1308859190.cos.ap-beijing.myqcloud.com/giteeimg/image-20211108094105237.png)

#### 2.4 编译安装

- 编译,指定安装目录

```shell
cd Python-3.8.7
# 配置安装位置
./configure prefix=/usr/local/python3
# 安装
make && make install
  • /usr/local 文件下产生了Python3

2.5 设置软连接

添加Python3的软连接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
  • 设置pip的软连接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3

2.6 测试运行

补充

这里我没有链接到python上,是因为yum要用到python2才能执行,所以现在输入python的话还是会进入python2.7,输入python3才会进入python3.8

如果执意想要链接到python的话,就得修改一下yum的配置:

vi /usr/bin/yum 
把 #! /usr/bin/python 修改为 #! /usr/bin/python2 

vi /usr/libexec/urlgrabber-ext-down 
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
  • 注:非必要,不建议将软连接设置为Python,建议设置为Python3

3 、虚拟环境

3.1 virtualenv讲解

  • 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;
    亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。
    此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。
    这里,就要隆重介绍virtualenv,一个可以帮助我们管理不同 Python 环境的绝好工具。
    virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境.
安装配置
pip3 install virtualenv

linux安装python 指定版本 yum_虚拟环境

  • 升级pip配置
pip3 install --upgrade pip

linux安装python 指定版本 yum_virtualenv_02

  • 创建virtualenv的软连接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
使用
# 进入目录
cd envs

3.创建独立运行环境-命名
virtualenv venv -p /usr/bin/python3
# 进入虚拟环境

linux安装python 指定版本 yum_virtualenv_03

  • 激活与退出
# 激活
source /data/envs/Myproject/venv/bin/activate
# 退出
deactive

linux安装python 指定版本 yum_python_04

  • 补充
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

4、确保开发环境的一致性

1.假设我们在本地开发环境,准备好了项目+依赖包环境
2.现在需要将项目上传至服务器,上线发布
3.那么就要保证服务器的python环境一致性
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt   
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt

5、virtualenvwrapper使用

  • 本人使用virtualenvwrapper较少,主要使用virtualenv
  • virtualenv 的一个最大的缺点就是:
    每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
    并且还有可能你忘记了虚拟环境放在哪。。。
解决方法
  • 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
  • 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。

安装virtualenvwrapper

#安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper
#设置环境变量,每次开机加载virtualevnwrapper

export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录

export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'  
#添加virtualenvwrapper的参数,生成干净隔绝的环境

export VIRTUALENVWRAPPER_PYTHON=/opt/python3/bin/python3     #指定python解释器

source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本

读取文件,使得生效,此时已经可以使用virtalenvwrapper

管理虚拟环境的命令

virtualenvwrapper 提供环境名字的tab补全功能。
当有很多环境, 并且很难记住它们的名字时,这就显得很有用。

创建一个虚拟环境:

mkvirtualenv my_django115
这会在 ~/Envs 中创建 my_django115 文件夹。

激活虚拟环境my_django115
workon my_django115

也可以手动停止虚拟环境
deactivate

删除虚拟环境,需要先退出虚拟环境
rmvirtualenv my_django115

lsvirtualenv
列举所有的环境。

cdvirtualenv
导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。

cdsitepackages
和上面的类似,但是是直接进入到 site-packages 目录中。

lssitepackages
显示 site-packages 目录中的内容。