python3.6的venv模块使用详解


Posted in Python onAugust 01, 2018

今天,在在使用 pycharm 的使用,进行创建 python的时候,发现使用默认的创建的选项使用的python 3环境 。而我系统默认的python环境是 python 2.7 环境;这就引起了我的兴趣。

我打开pycharm 的终端,发现:

python3.6的venv模块使用详解

前面 有个 venv 参数,通过 调研了一番我发现:python 的 venv 模块可以创建一个独立的虚拟的python运行环境,这样就和系统的python独立开来了。而我使用fedora 28的系统,默认安装了python2.7 和 python3.6 两种python环境。

我们使用 python 内置的文档查看,venv 相关,其描述为:

Help on package venv:

NAME
venv - Virtual environment (venv) package for Python. Based on PEP 405.

我们使用python3 查看 venv 模块的使用方法:

➜ env pwd
/home/xuyaowen/Desktop/workplace/env
➜ env python3 -m venv -h
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
      [--upgrade] [--without-pip] [--prompt PROMPT]
      ENV_DIR [ENV_DIR ...]

Creates virtual Python environments in one or more target directories.

positional arguments:
 ENV_DIR        A directory to create the environment in.

optional arguments:
 -h, --help      show this help message and exit
 --system-site-packages
            Give the virtual environment access to the system
            site-packages dir.
 --symlinks      Try to use symlinks rather than copies, when symlinks
            are not the default for the platform.
 --copies       Try to use copies rather than symlinks, even when
            symlinks are the default for the platform.
 --clear        Delete the contents of the environment directory if it
            already exists, before environment creation.
 --upgrade       Upgrade the environment directory to use this version
            of Python, assuming Python has been upgraded in-place.
 --without-pip     Skips installing or upgrading pip in the virtual
            environment (pip is bootstrapped by default)
 --prompt PROMPT    Provides an alternative prompt prefix for this
            environment.

Once an environment has been created, you may wish to activate it, e.g. by
sourcing an activate script in its bin directory.

通过上面的介绍,我们大致知道 venv 的模块使用方法:

首先我们创建虚拟环境:

➜ venvtest pwd
/home/xuyaowen/Desktop/workplace/venvtest
➜ venvtest python3 -m venv .

我们查看创建的结果:

➜ venvtest ls
bin include lib lib64 pyvenv.cfg
➜ venvtest ll *
lrwxrwxrwx. 1 xuyaowen xuyaowen  3 Jul 27 11:44 lib64 -> lib
-rw-r--r--. 1 xuyaowen xuyaowen  69 Jul 27 11:44 pyvenv.cfg

bin:
total 32K
-rw-r--r--. 1 xuyaowen xuyaowen 2.2K Jul 27 11:44 activate
-rw-r--r--. 1 xuyaowen xuyaowen 1.3K Jul 27 11:44 activate.csh
-rw-r--r--. 1 xuyaowen xuyaowen 2.4K Jul 27 11:44 activate.fish
-rwxr-xr-x. 1 xuyaowen xuyaowen 271 Jul 27 11:44 easy_install
-rwxr-xr-x. 1 xuyaowen xuyaowen 271 Jul 27 11:44 easy_install-3.6
-rwxr-xr-x. 1 xuyaowen xuyaowen 243 Jul 27 11:44 pip
-rwxr-xr-x. 1 xuyaowen xuyaowen 243 Jul 27 11:44 pip3
-rwxr-xr-x. 1 xuyaowen xuyaowen 243 Jul 27 11:44 pip3.6
lrwxrwxrwx. 1 xuyaowen xuyaowen  7 Jul 27 11:44 python -> python3
lrwxrwxrwx. 1 xuyaowen xuyaowen  16 Jul 27 11:44 python3 -> /usr/bin/python3

include:
total 0

lib:
total 4.0K
drwxr-xr-x. 3 xuyaowen xuyaowen 4.0K Jul 27 11:44 python3.6

我们当前 产生了很多虚拟环境相关的文件:

../venvtest
├── bin
│  ├── activate    用来激活虚拟环境
│  ├── activate.csh
│  ├── activate.fish
│  ├── easy_install
│  ├── easy_install-3.6
│  ├── pip
│  ├── pip3
│  ├── pip3.6
│  ├── python -> python3
│  └── python3 -> /usr/bin/python3
├── include
├── lib
│  └── python3.6
│    └── site-packages
├── lib64 -> lib
└── pyvenv.cfg

默认情况下,是创建 一个全新的python执行环境,并包含pip命令,当你激活虚拟环境后,我们可以 使用 pip 安装我们需要的第三方包并且新安装的包不在系统中出现。下面我们进行激活环境:

➜ venvtest source ./bin/activate
(venvtest) ➜ venvtest

前面出现 虚拟环境的名称,说明我们环境激活成功,这时候我们再进行运行python :

(venvtest) ➜ venvtest python -V
Python 3.6.5

可以发现,此时我们的python的环境为 3.6.5, 虚拟环境运行成功。当然你也可以在创建虚拟环境的时候使用--system-site-packages选项,来让虚拟环境使用系统的已经安装的包。

我们进一步阅读 activate 脚本:

(venvtest) ➜ bin cat activate | head -n 2
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly

你会发现,它前两行说明,你只能使用 source 命令来激活它。

好了,到这里大致会使用 venv 模块了。希望你使用愉快。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
python正则实现提取电话功能
Feb 24 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
python实现飞机大战
Sep 11 Python
对Python发送带header的http请求方法详解
Jan 02 Python
对python 中class与变量的使用方法详解
Jun 26 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
使用Python pip怎么升级pip
Aug 11 Python
python垃圾回收机制原理分析
Apr 13 Python
从请求到响应过程中django都做了哪些处理
Aug 01 #Python
Python WSGI的深入理解
Aug 01 #Python
Django进阶之CSRF的解决
Aug 01 #Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 #Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
Aug 01 #Python
python爬虫自动创建文件夹的功能
Aug 01 #Python
浅谈关于Python3中venv虚拟环境
Aug 01 #Python
You might like
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php获取文件大小的方法
2014/02/26 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
python爬取51job中hr的邮箱
2016/05/14 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
英国电信商店:BT Shop
2019/12/17 全球购物
实习生自荐信范文分享
2013/11/27 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
舞出我人生观后感
2015/06/16 职场文书
教师培训简讯
2015/07/20 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python