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实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
python循环监控远程端口的方法
Mar 14 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
Python3安装Pymongo详细步骤
May 26 Python
Python环境搭建之OpenCV的步骤方法
Oct 20 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
Python使用for生成列表实现过程解析
Sep 22 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
Dec 14 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
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
python 等差数列末项计算方式
2020/05/03 Python
python让函数不返回结果的方法
2020/06/22 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
服装设计专业毕业生推荐信
2013/11/09 职场文书
实习自我评价怎么写
2013/12/02 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
年终晚会活动方案
2014/08/21 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
javascript函数式编程基础
2021/09/15 Javascript
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS