Python—虚拟环境的创建与管理(virtualenv与virtualenvwrapper)
virtualenv
1.安装virtualenv包
[root@localhost ~]# pip install virtualenv
2.创建虚拟环境,位置不固定,可以在项目的目录下,也可以不在项目的目录下。
[root@localhost ~]# virtualenv project_env
3.激活虚拟环境,同时进入虚拟环境
[root@localhost ~]# source project_env/bin/activate
4.安装python的requests模块
(project_env) [root@localhost ~]# pip install requests
5.查看虚拟环境中安装的模块
(project_env) [root@localhost ~]# pip list
(project_env) [root@localhost ~]# pip freeze
6.创建项目并启动项目
(project_env) [root@localhost ~]# mkdir project && cd project
(project_env) [root@localhost project]# python Main.py
7.退出虚拟环境
(project_env) [root@localhost project]# deactivate
- 虚拟环境的路径与项目的路径互不相关,它们可以在不同的目录下面。主要看 source project_env/bin/activate 进入的是哪一个虚拟环境,就用哪一个虚拟环境运行项目。
- 进入虚拟环境,就是用虚拟环境运行项目。不进入虚拟环境,就是用系统的python环境运行项目。
- 上面就可以简单的创建并使用虚拟环境了,为了更方便的使用virtualenv,需要搭配virtualenvwrapper。
virtualenvwrapper
安装virtualenvwrapper包
[root@localhost ~]# pip install virtualenvwrapper
查找virtualenvwrapper.sh脚本的路径。这里路径为:/www/wwwroot/project_env/bin/virtualenvwrapper.sh
[root@localhost ~]# find / -name virtualenvwrapper.sh
修改linux的当前用户的配置文件:~/.bashrc。也是终端文件。文件中添加如下代码:
export WORKON_HOME=~/Envs # 设置virtualenv的统一管理目录,以后自动下载的虚拟环境都放在这
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python # 指定python解释器
source /www/wwwroot/project_env/bin/virtualenvwrapper.sh # 执行virtualenvwrapper安装脚本
读取文件,使得生效,此时已经可以使用 virtalenvwrapper 了。
[root@localhost ~]# source ~/.bashrc
1.创建虚拟环境,同时激活进入虚拟环境 project_env。
[root@localhost ~]# mkvirtualenv project_env
2.进入虚拟环境,使用 workon 可以查看创建了哪些虚拟环境。
[root@localhost ~]# workon
[root@localhost ~]# workon project_env
3.使用虚拟环境,这里 project 项目下面有个 Main.py 文件。
(project_env) [root@localhost ~]# pip list
(project_env) [root@localhost ~]# pip freeze
(project_env) [root@localhost ~]# pip install requests
(project_env) [root@localhost ~]# mkdir project && cd project
(project_env) [root@localhost project]# python Main.py
4.退出虚拟环境
(project_env) [root@localhost ~]# deactivate
5.删除虚拟环境
[root@localhost ~]# rmvirtualenv project_env
为什么需要 virtualenvwrapper?而不是virtualenv?这要从 virtualenv 说起。
- virtualenv 最大的一个缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。
- 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/,并对不同的虚拟环境使用不同的目录来管理。
- virtualenvwrapper 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。
- 创建虚拟环境实质上就是创建一个文件夹。
https://www.cnblogs.com/pyyu/p/9015317.html
https://www.cnblogs.com/st-st/p/10251449.html
https://www.jianshu.com/p/7ed2dfa86e90
https://blog.csdn.net/qq_41250801/article/details/83832482
Python—虚拟环境的创建与管理(virtualenv与virtualenvwrapper)的更多相关文章
- Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存
Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存 windows下多个python版本共存 https://www.python.org/downloa ...
- python为何需要虚拟环境--Python虚拟环境的安装和配置-virtualenv
一 虚拟环境 virtual environment 它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容 ...
- Windows Python虚拟环境配置(Distribute + pip + virtualenv + virtualenvwrapper-powershell)
对于Python开发新手,很多人会迷茫那些各种名目的工具和概念,如Python2.7, Python3.3, Distribute, pip, virtualenv,Setuptools, easy_ ...
- python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm
1 引言 进行Python开发时,多个项目可能使用到不同的依赖,例如A项目需要1.8版本的Django,而B项目需要2.0版本的Django,这时候如果没有使用虚拟环境,就需要来回卸载和安装Djang ...
- Python版本共存之道:virtualenv和virtualenvwrapper
以前觉得根本用不着这个,但是写不同项目的时候就遇到了问题,不可能把之前的全部删掉从新安装,于是就想到了这个,终于还是要学它, 现在做一个命令的总结,方便自己和大家查询 #以下以对 test 为名的虚拟 ...
- 【Tools】ubuntu无法virtualenv创建python虚拟环境的解决
刚有人问我Ubuntu python虚拟环境无法创建问题,报错same file error,防止今后遇到忘记,记录下可能的问题. 1.先在windows上试了下: pip install virtu ...
- [解决问题]ubuntu无法virtualenv创建python虚拟环境的解决
刚有人问我Ubuntu python虚拟环境无法创建问题,报错same file error,防止今后遇到忘记,记录下可能的问题. 1.先在windows上试了下: pip install virtu ...
- 使用pipenv管理python虚拟环境
前言 近期的项目中,我开始尝试着从virtualenv管理python虚拟环境,切换到用pipenv来管理. 经过一段时间的使用,着实觉得pipenv使用的更加顺手,更加的便捷.这当然也延续了 Ken ...
- PyCharm中创建项目时,在所创建的python虚拟环境下的pip失效
在这篇博文里,我简单地叙述了我在使用PyCharm创建一个flask项目时遇到的问题,以及我解决这个问题的过程.其中比较值得注意的点有:①PyCharm创建新项目时的解释器配置②Python虚拟环境的 ...
随机推荐
- 使用elementUI的日期选择框,两选择框关联时间限值
elementui 本身也提供了在一个输入框内关联选择时间的组件,非常好使,但无奈项目需要用两个输入框去关联的选择: <el-date-picker class="datepicker ...
- Thymeleaf对象的使用:基本对象
Thymeleaf中有许多内置对象,可以在模板中实现各种功能.下面有几个基本对象.Web对象常用有:request.session.servletContext.Thymeleaf提供了几个内置变量p ...
- Java基础之IO技术(一)
---恢复内容开始--- Java基础中的IO技术可谓是非常重要,俗话说的好,万丈高楼起于垒土之间.所以学习Java一定要把基础学好,今天我们来学习IO技术的基础. IO无非就是输入与输出,而其中处理 ...
- 如何快速查看 group 对应的id
最近需要获取group 对应的id 数字号码,突然想不起来怎么获得了,现在在这里进行备忘一下: $ cut -d: -f3 < <(getent group sudo) getent gr ...
- RF自动化测试之元素封装
自动化测试均需要遵循由点到面的规则,然而对于UI自动化,点是最容易发生变化的,如果使用硬链接,那么每次元素的修改都必须修改代码,这对于代码功底薄弱的测试工程师来说,是较为困难的,所以自动化测试需要对底 ...
- acwing 81. 扑克牌的顺子
地址 https://www.acwing.com/problem/content/77/ 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的. 2-10为数字本身,A为1,J为11, ...
- WPF 获取系统 DPI 的多种方法
原文:WPF 获取系统 DPI 的多种方法 WPF 获取系统 DPI 的多种方法 由于 WPF 的尺寸单位和系统的 DPI 相关,我们有时需要获取 DPI 值来进行一些界面布局的调整,本文汇总了一些 ...
- networkx生成网络
ER随机网络,WS小世界网络,BA无标度网络的生成 import networkx as nx import matplotlib.pyplot as plt #ER随机网络 #10个节点,连接概率为 ...
- 使用configparser模块进行封装,构造配置文件处理器
from configparser import ConfigParser class HandleConfig: ''' 定义一个配置文件处理类 ''' def __init__(self, fil ...
- 【转】oracle中的NULL、''(空字符串)以及'_'(空格)
在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? 1.NULL和''(空字符串)是一个意思 注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格. ...