linux-配置python虚拟环境
# linux-配置python虚拟环境
# Linux安装python3与virtualenv
centos7默认是装有python的 python -V
# 1、安装python3
# 1.1 解决环境依赖的问题
安装python前的库环境,非常重要,如果要正确安装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
# 1.2 下载python3的源码包
网址:https://www.python.org/downloads/release/python-388/ (opens new window)
下载地址:https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz (opens new window) (这里以3.8示例)
我们可以在opt(给主机额外安装软件所摆放的目录)文件下下载(看自己)
1、下载
wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz
# wget命令用于在终端下载网络文件,下载成功后会出现Python-3.8.8.tgz压缩包
2
3
2、解压
tar -xf Python-3.8.8.tgz
# tar 压缩命令
# -x 解压参数
# -f 指定一个压缩文件的名字
2
3
4
5
3、编译且安装
进入python源码包目录,cd Python-3.8.8
./configure --prefix=/opt/python3/ # 告诉编译器,python3安装到哪里
# --prefix 指定文件路径
2
3
make && make install # 编译 && 安装
安装成功后会在opt下有个python3文件夹,cd /python3/bin 执行./python3.8 成功就表示安装成功了
4、配置python3环境变量
安装成功后我们要配置环境变量,以后直接python3.8就可以打卡
vim /etc/profile # 进入文件
export PATH=/opt/python3/bin:$PATH # 在/etc/profile最后一行添加
2
3
source /etc/profile # 执行文件
echo $PATH #取出打印PATH的值(也可以这样 export PATH= /opt/python3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
5、测试
直接输入python3.8即可
# 1.3 linux下进行django开发(简单版)
1、下载django模块
pip install django
2、创建django项目
django-admin startproject 项目名
3、修改django配置
127.0.0.1 本机回环地址,只能自己访问到自己,每台机器都有一个127.0.0.1
0.0.0.0 代表绑定这台机器所有的网卡,所有人都可以去访问
192.168.16.37 当前机器对外提供访问的ip的地址
2
3
# 关闭linux的防火墙
iptables -F # 清空防火墙规则
# 修改django配置文件中的settings.py
ALLOWED_HOSTS = ["*"]
2
3
4
5
4、运行django项目
# 如果你项目启动在这个地址上,绑定了这个机器所有的ip,自己可以通过127.0.0.1:8000访问
# 其他人如果想访问中国项目,应该访问 192.168.16.37:8000
python3 manage.py runserver 0.0.0.0:8000
2
3
4
# 2、安装python虚拟环境
# 2.1 virtualenv
virtualenv 可以在系统中建立多个不同并且相互不干扰的虚拟环境
修改镜像源,并升级pip
# 指定清华源下载pip的包
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
# 升级pip工具
pip3 install --upgrade pip
2
3
4
1、安装配置virtualenv
# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 环境名称
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
2
2、创建目录
mkdir Myproject
cd Myproject
2
3、创建独立运行环境-命名
virtualenv --python=python3 venv#得到独立第三方包的环境,并且指定解释器是python3
# ! 注意如果tirtualenv版本小于20的话用virtualenv --no-site-packages --python=python3 venv
2
4、进入虚拟环境
source venv/bin/activate # 此时进入虚拟环境(venv)Myproject
5、安装第三方包
(venv)Myproject: pip3 install django==1.9.8
#此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
2
6、退出venv环境
deactivate命令
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
# 2.2 virtualenvwrapper
virtualenv 的一个最大的缺点就是:
每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
并且还有可能你忘记了虚拟环境放在哪。。。
一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。
1、安装并配置virtualenvwrapper
# 1、安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper
# 2、配置环境变量,每次开机都加载virtualenvwrapper这个工具,注意是配置的是个人环境变量配置文件
vim ~/.bash_profile # 2.1 打开文件
#2.2 把下面的命令直接复制到里面(下面4条)。设置环境变量,每次开机加载virtualevnwrapper
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python3/bin/python3 #指定python解释器
source /opt/python3/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
读取文件,使得生效,此时已经可以使用virtalenvwrapper
# !!! 如果虚拟环境的版本大于20的话就把第三行注释掉
# 3、关闭xshell重新打开一个窗口
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2、管理虚拟环境的命令
创建一个虚拟环境:
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 目录中的内容。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 2.3 确保开发环境的一致性
# 1.假设我们在本地开发环境,准备好了项目+依赖包环境
# 2.现在需要将项目上传至服务器,上线发布
# 3.那么就要保证服务器的python环境一致性
2
3
解决方案:
1.通过命令保证环境的一致性,导出当前python环境的包
pip3 freeze > requirements.txt
这将会创建一个 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表。
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt
2
3
4
5
6
7
8
9
10