Python安装虚拟环境virtualenv
一、python虚拟环境介绍虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。二、为什么要使用虚拟环境同时开发多个项目,各自项目使用的python版本不同,譬如一个是python2
一、python虚拟环境介绍 |
虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。
二、为什么要使用虚拟环境 |
-
同时开发多个项目,各自项目使用的python版本不同,譬如一个是python2.x,另一个是python3.x,那么需要来回的切换python版本;
-
当你同时开发多个项目时,特别是多个项目使用同一个库,譬如:django,但是各自项目使用的django的版本不一致时,那么你在开发这些项目时,需要来回的卸载和安装不同的版本,因为同一个python环境中,同名的库只能有一个版本。
-
项目部署时,直接导出项目对应的环境中的库就可以了;(pip freeze > filename.txt)
PS:实际项目开发时,建议每个项目使用独立的虚拟环境,但是在进行学习时,只使用一个虚拟环境就够了,避免频繁的创建虚拟环境,安装第三方库,浪费时间。
三、虚拟环境的安装 |
windows环境下安装虚拟环境
-
安装好python环境
-
先查看当前电脑中是否有虚拟环境命令:virtualenv --version
-
安装虚拟环境库,在cmd中输入: pip install virtualenv
-
创建虚拟环境,在cmd中切换到需要创建虚拟环境的目录下,执行(env_name 为你要创建的虚拟环境名):
virtualenv env_name -
激活虚拟环境,在cmd中进入到 第三步创建的 env_name/Scripts 目录下,执行: activate
执行成功后,在cmd中,当前输入行前面会有 (env_name) 的前缀。在当前状态下,使用 pip 就是在虚拟环境中安装第三方库了 -
退出虚拟环境,cmd中输入: deactivate
问题1:使用virtualenv创建环境的时候,当前目录在哪儿就在哪儿创建,会导致以后到处都是(C盘D盘)环境,不便管理。
问题2:需要记住环境目录所在,并使用cd命令 有可能 多次进入指定环境才能激活,过程有点繁琐,不便操作。
四、虚拟环境优化 |
在使用过程中,会发现上述的步骤,会有不少局限,譬如必须切换到指定目录才能操作等。通过安装 virtualenvwrapper-win 可以更加简便的使用虚拟环境(需要先安装virtualenv)
-
pip安装 pip install virtualenvwrapper-win
-
在环境变量中,配置虚拟环境的指定安装目录,打开系统环境变量配置
-
新建系统变量名:WORKON_HOME,变量值配置为你的系统中一个指定目录,譬如:F:\python3_env
- 保存配置
在cmd中运行 workon或者lsvirtualenv ,即可查看当前本机已经创建的所有虚拟环境名
C:\Users\Administrator>workon
Pass a name to activate one of the following virtualenvs:
==============================================================================
django_env_01
Django_login_system_01
django_env_02
django_shopping
django_shopping_mall
flask_02
flask_news
flask_shopping_env
pachong
新建虚拟环境,cmd中输入:
mkvirtualenv env_name - p python
PS:可以在cmd命令窗口的任意目录下新建,最终虚拟环境文件夹都会创建在 第 2 步中的 WORKON_HOME 指定的文件夹中。
激活虚拟环境,cmd中输入:
workon env_name
退出虚拟环境,cmd中输入:
deactivate
删除虚拟环境,cmd中输入:
rmvirtualenv env_name
项目部署时,导出虚拟环境的依赖包到requements.txt文件中的命令:
pip freeze > filename.txt
Linux环境下安装虚拟环境
-
先查看当前电脑中是否有虚拟环境命令
virtualenv --version -
安装虚拟环境的命令:
sudo pip install virtualenv
sudo pip install virtualenvwrapper
# 查看安装的包
[root@localhost ~]# pip list
Package Version
----------------- ----------
virtualenv 20.0.35
virtualenv-clone 0.5.4
virtualenvwrapper 4.8.4
Werkzeug 1.0.1
wsproto 0.15.0
zstandard 0.13.0
WARNING: You are using pip version 19.2.3, however version 20.2.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[root@localhost ~]#
[root@localhost ~]# virtualenv --version
virtualenv 20.0.35 from /usr/local/Program/Python3.8/lib/python3.8/site-packages/virtualenv/__init__.py
- 查看是否有mkvirtualenv创建虚拟环境指令
mkvirtualenv --version
[root@localhost ~]# mkvirtualenv --version
-bash: mkvirtualenv: 未找到命令
[root@localhost ~]#
- 安装完虚拟环境后,如果提示找不到mkvirtualenv,workon等命令是正常的,须配先要置环境变量保存的路径以及shell指令才能使用。
- 创建目录用来存放虚拟环境,一般放在home下
mkdir /HOME/用户名/.virtualenvs - 查找virtualenvwrapper所在的路径(记得加.sh要不然查到出来的路径不正确)
whereis virtualenvwrapper.sh或 find / -name virtualenvwrapper.sh
[root@localhost ~]# whereis virtualenvwrapper.sh
virtualenvwrapper: /usr/local/Program/Python3.8/bin/virtualenvwrapper.sh
[root@localhost ~]#
- 打开~/.bashrc文件,并添加如下(根据自己实际情况添加):
export WORKON_HOME=/home/bert/.virtualenvs
source /usr/local/Program/Python3.8/bin/virtualenvwrapper.sh
- 运行source /root/.bashrc(激活更新配置)
source ~/.bashrc
坑:如果你的环境是python3,重新加载后,可能会出现这样类似的错误
/usr/bin/python: 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.
因为在virtualenvwrapper.sh中有如下代码
# Locate the global Python where virtualenvwrapper is installed.
if [ "$VIRTUALENVWRAPPER_PYTHON" = "" ] then
VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi
解决方案:
直接将VIRTUALENVWRAPPER_PYTHON默认值修改为你自己的python3安装路径即可(which python3命令可帮你自动查找)。
# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"
fi
脚本会默认使用python2环境,但是virtualenvwrapper装在了python3环境中,所以会有上面的报错。
-
创建虚拟环境的命令 :
mkvirtualenv 虚拟环境名称(python2.x)
例: mkvirtualenv py_flask -p /usr/bin/pythonmkvirtualenv -p python3 虚拟环境名称(指定python3.x,此处的python3.x其实是python3.x的安装路径,这样写的前提是你已经配置过python的环境变量或者建立了软连接了。)
例 :mkvirtualenv -p python3 py3_flask
其他的操作与windows类似。
提示 : 工具包安装的位置 :
python2版本下:~/.virtualenvs/虚拟环境名/lib/python2.7/site-packages/
python3版本下:~/.virtualenvs/虚拟环境名/lib/python3.8/site-packages/
总结
一,先查看操作系统中是否有虚拟环境?
virtualenv --version
二,如果查看之后没有虚拟环境的命令,则安装[需要联网]
pip install virtualenv
pip install virtualenvwrapper
三,查看当前操作系统中有哪些虚拟环境的文件夹?
workon
四, 创建虚拟环境文件夹
#该命令安装好之后默认的python解释器是python2.X
mkvirtualenv 文件夹的名字
#指定安装python3的解释器
mkvirualenv -p python3 虚拟环境文件夹
五,从虚拟环境中退出
deactivate [虚拟环境文件夹的名称]
六,进入到虚拟环境中
workon 虚拟环境名称
七,删除虚拟环境
rmvirtualenv 虚拟环境
八,安装flask框架
pip install flask==0.10.1
九,查看当前虚拟环境中有哪些扩展
pip freeze
搞定,已经可以使用flask做基本的开发了
十,导出虚拟环境中的所有的扩展
pip freeze > requirements.txt
十一,使用requirements.txt安装虚拟环境
pip install -r requirements.txt
更多推荐
所有评论(0)