python中virtualenvwrapper安装与使用
作者:fidding 发布时间:2022-07-28 03:21:52
virtualenv与virtualenvwrapper
当涉及到python项目开发时为了不污染全局环境,通常都会使用环境隔离管理工具virtualenv与virtualenvwrapper。
virtualenv是在项目底下执行生成venv环境目录以此来进行管理,这非常适合使用诸如pycharm这种集成环境配置的开发工具;那么当通过shell来运行virtualenv时便会显得非常麻烦,因为每次shell关闭再打开后都需要重新配置环境参数。
virtualenvwrapper是将所有的python项目虚拟环境环境都存放在一起,在使用shell配合小型开发工具就会非常方便。
virtualenvwrapper安装配置(MAC)
1、使用pip3安装
$ sudo pip3 install virtualenvwrapper
2、新建存放环境目录(笔者目录为Envs并放在Home下)
$ mkdir -p ~/Envs
3、配置virtualenvwrapper环境(使用python3)
i. 打开bash_profile,执行vim ~/.bash_profile并写入
# 设置virtualenvwrapper
export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
# 打开终端自动启用
source /usr/local/bin/virtualenvwrapper.sh
ii. 打开.zshrc,执行vim ~/.zshrc并写入(如果有安装item2与oh-my-zsh)
# 设置virtualenvwrapper
export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
# 打开终端自动启用
source /usr/local/bin/virtualenvwrapper.sh
4、使配置生效
$ source ~/.bash_profile
$ source ~/.zshrc
virtualenvwrapper 使用
1、新建虚拟环境test并指定python版本python3
$ mkvirtualenv test --python=python3
执行lsvirtualenv指令查看所有环境,环境test位于~/Envs/test
$ lsvirtualenv
test
====
2、在项目底下激活虚拟环境test
workon test
3、其他指令
## 退出环境test
deactivate
## 删除环境test
rmvirtualenv test
## 更多指令可以在shell中输入virtualenv回车会有提示
irtualenvwrapper设置环境变量
当我们使用框架时经常需要执行pip install或者 export环境变量等额外的操作,这时就需要使用postactivate等钩子文件(当然钩子文件还有很多,具体感兴趣可以去查看官方文档)。
举个栗子:
想在test虚拟环境激活后设置环境变量
1、打开test的postactivate钩子文件vim ~/Envs/test/bin/postactivate
#!/bin/zsh
# This hook is sourced after this virtualenv is activated.
# 在当前会话加入环境变量
export ENV=dev
2、这时当执行workon test 激活虚拟环境后便会执行postactivate将项目环境变量Env设置为dev
3、在postactivate 中还可以执行诸如pip install -r requirements.txt,pip install -e conf等shell 操作
到目前为止基本的virtualenvwrapper使用就介绍完了
感谢大家对脚本之家的支持,如果还有任何疑问可以在下方的留言区讨论。
来源:https://segmentfault.com/a/1190000014935970


猜你喜欢
- 基础知识优先使用异常捕获LBYL(look before you leap): 在执行一个可能出错的操作时,先做一些关键的条件判断,仅当满足
- 前言:本博客只是因为我正在上计算机图形学这门课,为了方便复习所写,所以内容的正确性不敢保证,各位观看之前请三思(欢迎大佬提出建议)为VS20
- 本文实例讲述了Django框架视图介绍与使用。分享给大家供大家参考,具体如下:视图视图:即一个python函数,可以叫 视图函数,或者简称
- 使用Python过程中,经常需要对文件和目录进行操作。所有file类/os/os.path/shutil模块时每个Python程序员必须学习
- 如下所示:def test1(): import os return1=os.system('ping 8.8.8.8')
- 表头固定应该是一个用得比较多的功能,参考了网上几个例子,在几个常用浏览器下显示不是很完美。而且很多都是基于固定的表格,在编码时多写一个固定的
- 概述你是否有微信被删了好友不自知,还傻傻的给对方发消息,结果出现了下图中那尴尬的一幕的经历呢?其实我们可以用Python提前把他们找出来并自
- 1.在搭建网络开始时,会调用到 keras.models的Sequential()方法,返回一个model参数表示模型2.model参数里面
- Node被设计用来高效的处理I/O操作,但是你应该知道,有些类型的程序并不适合这种模式。比如,如果你打算用Node处理一个CPU密集的任务,
- 本文实例讲述了JS获取鼠标位置距浏览器窗口距离的方法。分享给大家供大家参考,具体如下:先来看看运行效果图:代码如下:<!DOCTYPE
- prototype框架最早是出于方便Ruby开发人员进行JavaScript开发所构建的,从这个版本上更加体现的淋漓尽致。比起1.3.1版本
- 安装wgetyum -y install wget创建一个download目录用于下载各种安装包mkdir download切换到刚创建的d
- 查看当前连接系统参数:SHOW VARIABLES LIKE '%char%'; mysql> show variab
- 本文实例为大家分享了vue更多筛选项小组件的实现方法,供大家参考,具体内容如下效果:就是一个简单的小效果,当有很多筛选条件时,默认只展示几项
- 前言上篇文章主要写了利用scapy实现ping扫描,这篇文章主要是利用scapy模块实现内网ARP扫描实现过程上篇文章中介绍了通过scapy
- decode()方法使用注册编码的编解码器的字符串进行解码。它默认为默认的字符串编码。语法以下是decode()方法的语法:st
- 在django操作数据库的时候如何找出内容不为空的数据呢?from django.db.models import Qclass Index
- 最近写一个BootStrap页面...因为功能需要所以决定一个页面解决所有问题,然后用jQuery来动态显示功能....然而这样做的话页面会
- Jupyter Notebook读取csv文件失败1.IndentationError: expected an indented bloc
- 对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态