在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。

virtualenv是一个可以帮助我们管理不同 Python 环境,可以在系统中建立多个不同并且相互不干扰的虚拟环境。

一 安装、配置virtualenv

1.1下载包

指定清华源下载pip的包

root@darren-virtual-machine:~# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

升级pip工具

root@darren-virtual-machine:~# pip3 install --upgrade pip

1.2 安装virtualenv

root@darren-virtual-machine:~# pip3 install virtualenv

1.3 创建独立的虚拟环境

root@darren-virtual-machine:~/PycharmProjects/drfdemo# virtualenv  --python=python3  venv

  created virtual environment CPython3.6.9.final.0-64 in 371ms
creator CPython3Posix(dest=/root/PycharmProjects/drfdemo/venv, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

root@darren-virtual-machine:~/PycharmProjects/drfdemo# ll

drwxr-xr-x 4 root root 4096 4月  12 10:28 venv/

1.4 虚拟环境简单操作

进入虚拟环境

root@darren-virtual-machine:~/PycharmProjects/drfdemo# source venv/bin/activate

使用虚拟环境安装第三方包

(venv) root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 install django==1.9.8

查看

(venv) root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 list

Package    Version
---------- -------
Django 1.9.8
pip 20.0.2
setuptools 46.1.3
wheel 0.34.2

退出虚拟环境

(venv) root@darren-virtual-machine:~/PycharmProjects/drfdemo# deactivate

安装虚拟环境virtualenvwrapper

virtualenv 的一个最大的缺点就是:

每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

并且还有可能你忘记了虚拟环境放在哪。。。

  • 一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。
  • 使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤。

二 虚拟环境virtualenvwrapper

2.1 安装虚拟环境virtualenvwrapper

root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 install virtualenvwrapper

设置Linux的用户个人配置文件

export WORKON_HOME=~/Envs   # 设置virtualenv的统一管理目录, 以后自动下载的虚拟环境,全部都放在这
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='' # 添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

执行virtualenvwrapper安装脚本

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# source /usr/local/bin/virtualenvwrapper.sh

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# source /root/.bashrc

2.2 创建一个虚拟环境简单使用

root@darren-virtual-machine:~/PycharmProjects/drfdemo# mkvirtualenv drfdemo -p python3

created virtual environment CPython3.6.9.final.0-64 in 325ms
creator CPython3Posix(dest=/root/Envs/drfdemo, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /root/Envs/drfdemo/bin/predeactivate
virtualenvwrapper.user_scripts creating /root/Envs/drfdemo/bin/postdeactivate
virtualenvwrapper.user_scripts creating /root/Envs/drfdemo/bin/preactivate
virtualenvwrapper.user_scripts creating /root/Envs/drfdemo/bin/postactivate
virtualenvwrapper.user_scripts creating /root/Envs/drfdemo/bin/get_env_details

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 list

Package    Version
---------- -------
pip 20.0.2
setuptools 46.1.3
wheel 0.34.2

安装一个第三方插件

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 install django

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 install django
Collecting django
Using cached Django-3.0.5-py3-none-any.whl (7.5 MB)
Collecting asgiref~=3.2
Using cached asgiref-3.2.7-py2.py3-none-any.whl (19 kB)
Collecting pytz
Using cached pytz-2019.3-py2.py3-none-any.whl (509 kB)
Collecting sqlparse>=0.2.2
Using cached sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
Installing collected packages: asgiref, pytz, sqlparse, django
Successfully installed asgiref-3.2.7 django-3.0.5 pytz-2019.3 sqlparse-0.3.1

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# pip3 list

Package    Version
---------- -------
asgiref 3.2.7
Django 3.0.5
pip 20.0.2
pytz 2019.3
setuptools 46.1.3
sqlparse 0.3.1
wheel 0.34.2

退出虚拟环境

(drfdemo) root@darren-virtual-machine:~/PycharmProjects/drfdemo# deactivate

删除虚拟环境

root@darren-virtual-machine:~/PycharmProjects/drfdemo# rmvirtualenv drfdemo

Removing drfdemo...

参考:https://www.cnblogs.com/tiger666/articles/10312546.html

064.Python开发虚拟环境的更多相关文章

  1. Python开发虚拟环境使用virtualenvwrapper的搭建及pycharm链接步骤

    virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.创建的环境是独立的,互不干扰,无需sudo ...

  2. Python开发不可不知的虚拟环境

    一.python3.3之后自带的venv模块 1. 创建虚拟环境 python3.6 -m venv project-env 2. 加入虚拟环境目录 cd pronject-env 3. 激活虚拟环境 ...

  3. [原]打造Python开发环境之初篇

    古语有云: 工欲善其事,必先利其器 拥有自己的一套得心应手的Python开发环境,开发起来,简直如丝般顺滑.以我工作中使用到的Python开发环境(主要是Web应用),先做个总体介绍 Python环境 ...

  4. 老司机带你用vagrant打造一站式python开发测试环境

      前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...

  5. ubuntu下创建python的虚拟环境

    当我们在同一个机器上进行开发多个项目,每个项目于用到包的不同版本的时候,就很尴尬. 安装python包的命令是: sudo pip install 包名 这样的话,会将包安装到/usr/local/l ...

  6. Python开发环境-Pyenv安装使用

    安装使用-Pyenv 简单的python版本管理:pyenv 管理python解释器 管理python版本 管理python的虚拟环境 官网:https://github.com/pyenv/pyen ...

  7. 搭建python的虚拟环境

    文章连接:https://www.cnblogs.com/zlsgh/p/8485848.html ubuntu系统下Python虚拟环境的安装和使用        前言:进行python项目开发的时 ...

  8. python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm

    1 引言 进行Python开发时,多个项目可能使用到不同的依赖,例如A项目需要1.8版本的Django,而B项目需要2.0版本的Django,这时候如果没有使用虚拟环境,就需要来回卸载和安装Djang ...

  9. Python 开发安卓Android及IOS应用库Kivy安装尝试

    Python 开发安卓Android及IOS应用库Kivy安装尝试: 先来看看这货可以用来制作什么应用: Create a package for Windows Create a package f ...

随机推荐

  1. 强大的 Guava 工具类

    Java 开发的同学应该都使用或者听说过 Google 提供的 Guava 工具包.日常使用最多的肯定是集合相关的工具类,还有 Guava cache,除了这些之外 Guava 还提供了很多有用的功能 ...

  2. BUAA_2021_SE_READING_#2

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 通过课程学习,完成第一个可以称之为"软件"的项目 ...

  3. Java(25-40)【数据类型转换、运算符、方法入门】

    1.ASCII编码表 0--48 A--65 a--97 2. Unicode万国码 字符'中'为20013 3.算数运算符 double类型的加上int类型结果为double byte short ...

  4. 为什么有时博客中的代码复制进自己的VS中报错

    昨天写代码时遇到一个问题,我搜了一篇博客,然后复制到我的WPF中, 然后,全报错(当时快给我气死了,一篇有一篇的不能用,试了一次又一次,时间全浪费在这上面了,没打游戏,做的东西也没出来) 问题原因: ...

  5. 4- MySQL创建表以及增删改查

    查看表结构 查看表的结构,使用命令:desc 表明: 创建表(命令) 格式:使用create table创建表,必须给出下列信息: 1.新表的名字. 2.表中列的名字和定义,用逗号隔开. 语法: cr ...

  6. overflow和absolute之间的问题,transfrom可以解决

    CSS代码: .overflow { width: 191px; height: 191px; border: 2px solid #beceeb; overflow: hidden; } .over ...

  7. TP5.1 遇见问题整理

    1. 获取当前执行sql fetchSql(true) self::table('ecm_draw_address')->field('id')->where(array('store_i ...

  8. 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析

    前言 在本系列的文章中,对每一个病毒分析的最后一个部分,若无特殊情况,我都会采用逆向分析的手段来为读者彻底剖析目标病毒.但是之前的"熊猫烧香"病毒,我用了三篇文章的篇幅(每篇250 ...

  9. hdu3234 带权并查集(XOR)

    题意:       给你n个未知的正整数,有三总操作       I P V            P的值是V       I P Q V          P XOR Q = V       Q K ...

  10. Windows PE 第十章 加载配置信息

    加载配置信息 加载配置信息最初最用在Windows NT操作系统中,作为文件头部的延伸部分,后来被用作异常处理.加载配置信息表中存放了基于结构化异常处理(SEH)技术的各项异常句柄.当程序运行发生异常 ...