python虚拟环境venv、virtualenv配置方式
作者:琳达kk
原理
虚拟环境是利用了操作系统中环境变量,以及进程间环境隔离的特性,python就是在激活虚拟环境的时候,激活脚本会将当前命令行程序的 PATH 修改为虚拟环境的,这样执行命令就会在被修改的 PATH 中查找,避免了找到原本的 PATH ,实现了 Python 环境的隔离。
创建、删除虚拟环境
创建虚拟环境分为两种:
- python3.3之前,只能通过 virtualenv 创建虚拟环境
- python3.3之后,可以用模块 venv 代替 virtualenv 工具
下图为pycharm中创建的虚拟环境:
用 virtualenv 创建虚拟环境:
pip install virtualenv virtualenv venv_1 # 这条命令创建一个名为 venv_1 的虚拟环境
用 venv 创建虚拟环境:
python3 -m venv venv_2 # 此处 venv_2 也是自定义的虚拟环境名字
如果不想在虚拟环境中下载系统中重复的包,可以使用该命令:
(允许虚拟环境访问 system site packages 目录,允许使用系统中安装的第三方包)
方法一:
--system-site-pakage python3 -m venv --system-site-packages
方法二:
改动 venv 目录下 pyvenv.cfg 文件:
include-system-site-packages=true
看安装的包来自哪里:
pip list -v
删除虚拟环境:
rm -rf 环境名
venv 命令帮助:
python -m -venv -h
激活、退出、初始化虚拟环境
如何激活虚拟环境:
(虚拟环境创建好后,需激活才能在当前的命令行中使用,可以理解成将当前命令行环境 PATH 变量的值替换掉)
(命令行界面)创建好虚拟环境后,cd 到 venv_2 中,再 cd 到 bin 中,输入以下命令:
source activate # mac Scripts目录下activate # windows
退出虚拟环境:
deactivate
初始化虚拟环境:
(需要在虚拟环境父目录下执行该条命令)
python -m venv --clear 环境名
导出、导入虚拟环境
将项目的依赖库导出,作为代码的一部分:
pip freeze>requirements.txt
导出的内容在其他虚拟环境中可以导入:
pip install -r requirements.txt
pycharm+虚拟环境
结合pycharm:
①新建环境
new project # 选这个
②环境选择
new environment using # 创建一个新的环境(会生成一个venv目录) 选这个 Inherit global site-packages # 是否要继承基础解析器的第三方库 Make available to all project # 是否将这个虚拟环境作为默认的环境 existing interpreter # 使用已经存在的解释器
部署虚拟环境
部署虚拟环境流程:
①开发完成后,使用 pip freeze>requirements.txt 命令将项目的库依赖导出,作为项目的一部分
②将代码上传到服务器
③在服务器上创建一个虚拟环境
④激活虚拟环境,执行 pip install -r requirements.txt 安装项目依赖
pycharm目录下idea作用
创建环境时,自动创建的 .idea 作用:
.idea 保存 IDE 需要的和你当前项目相关的一些配置,状态,比如说,你打开了N个文件,关了软件,下次再打开,又给你恢复到你上次关闭时的状态,这些信息就在这里面了(你可以关闭后把.idea目录删掉再打开试试)
pycharm目录下venv文件内容含义
venv内含文件含义:
- lib 文件夹下 site-package:包含使用 pip 安装的依赖项(如request、flask等)。
- scripts文件夹:它包含激活文件(activate)、退出激活文件(deactivate)、pip.exe、python.exe等。
- pyvenv.cfg:可以通过该文件改变虚拟环境所指向的 PATH(如果创建虚拟环境后,想要手动更改虚拟环境指向真实python环境,也可以通过该文件修改)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。