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

前面 有个 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 .
我们使用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. xuyaowen xuyaowen Jul : lib64 -> lib
-rw-r--r--. xuyaowen xuyaowen Jul : pyvenv.cfg bin:
total 32K
-rw-r--r--. xuyaowen xuyaowen .2K Jul : activate
-rw-r--r--. xuyaowen xuyaowen .3K Jul : activate.csh
-rw-r--r--. xuyaowen xuyaowen .4K Jul : activate.fish
-rwxr-xr-x. xuyaowen xuyaowen Jul : easy_install
-rwxr-xr-x. xuyaowen xuyaowen Jul : easy_install-3.6
-rwxr-xr-x. xuyaowen xuyaowen Jul : pip
-rwxr-xr-x. xuyaowen xuyaowen Jul : pip3
-rwxr-xr-x. xuyaowen xuyaowen Jul : pip3.
lrwxrwxrwx. xuyaowen xuyaowen Jul : python -> python3
lrwxrwxrwx. xuyaowen xuyaowen Jul : python3 -> /usr/bin/python3 include:
total lib:
total .0K
drwxr-xr-x. xuyaowen xuyaowen .0K Jul : python3.
我们当前 产生了很多虚拟环境相关的文件:
../venvtest
├── bin
│ ├── activate 用来激活虚拟环境
│ ├── activate.csh
│ ├── activate.fish
│ ├── easy_install
│ ├── easy_install-3.6
│ ├── pip
│ ├── pip3
│ ├── pip3.
│ ├── python -> python3
│ └── python3 -> /usr/bin/python3
├── include
├── lib
│ └── python3.
│ └── site-packages
├── lib64 -> lib
└── pyvenv.cfg
默认情况下,是创建 一个全新的python执行环境,并包含pip命令,当你激活虚拟环境后,我们可以 使用 pip 安装我们需要的第三方包并且新安装的包不在系统中出现。下面我们进行激活环境:
➜ venvtest source ./bin/activate
(venvtest) ➜ venvtest
前面出现 虚拟环境的名称,说明我们环境激活成功,这时候我们再进行运行python :
(venvtest) ➜ venvtest python -V
Python 3.6.
可以发现,此时我们的python的环境为 3.6.5, 虚拟环境运行成功。当然你也可以在创建虚拟环境的时候使用 --system-site-packages 选项,来让虚拟环境使用系统的已经安装的包。
我们进一步阅读 activate 脚本:
(venvtest) ➜ bin cat activate | head -n
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
你会发现,它前两行说明,你只能使用 source 命令来激活它。
好了,到这里大致会使用 venv 模块了。希望你使用愉快。
保持更新,转载请注明出处。
python 3.6 的 venv 模块的更多相关文章
- Windows下用Python 3.4+自带的venv模块创建虚拟环境
Python 3.4+自带了venv模块,用于创建虚拟环境,每个虚拟环境都可以安装一套独立的第三方模块. 本文在Windows 10上操作. 1.创建一个虚拟环境: D:\>mkdir test ...
- Python学习笔记十_模块、第三方模块安装、模块导入
一.模块.包 1.模块 模块实质上就是一个python文件.它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称 2.包 包,packa ...
- Python全栈day21-22-23(模块)
一,python的模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python 学习笔记(6)--常用模块(2)
一.下载安装 下载安装有两种方式: yum\pip\apt-get 或者源码 下载源码 解压源码 进入目录 编译源码 python setup.py build 安装源码 python setup.p ...
- python学习笔记之常用模块(第五天)
参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...
- Python 之路 Day5 - 常用模块学习
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- Python导入自定义包或模块
一般我们会将自己写的 Python 模块与 Python 自带的模块分开存放以达到便于维护的目的. Python 运行环境在查找模块时是对 sys.path 列表进行遍历,如果我们想在运行环境中添加自 ...
- python几个重要的模块备忘
一:模块使用方法 二:时间模块time 三:系统接口模块os和sys 四:数据保存的几个模块json,pickle,xml,configparse 五:数据复制移动模块shutil 六:日志模块log ...
随机推荐
- 【IT笔试面试题整理】判断一个树是否是另一个的子树
[试题描述]定义一个函数,输入判断一个树是否是另一个对的子树 You have two very large binary trees: T1, with millions of nodes, and ...
- 熟悉DAO模式的用法
今天主要是使用DAO模式. DAO模式通过对业务层提供数据抽象层接口,实现了以下目标: 1. 数据存储逻辑的分离 通过对数据访问逻辑进行抽象,为上层机构提供抽象化的数据访问接口.业务层无需关心具体的s ...
- (转)mybatis数据库物理分页插件PageHelper
以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了.最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧.记录下其使用方法. ...
- git第六节---git 远程仓库
远程分支类似于本地分支,是指向远程仓库中的文件的指针. 1.远程分支抓取 @git fetch origin dev :拉取远程dev内容 fetch不会对本地仓库内容进行更新,只更新远端commit ...
- PowerBuilder编程新思维4:钩挂(界面美化与DirectUI)
<第二部分 Outside> PowerBuilder编程新思维4:钩挂(界面美化与DirectUI) PB的界面由于其封闭性,一直以来都是最大的弱项.自PB9.0开放了PBNI接口后,开 ...
- SpringMVC之@PathVariable 映射 URL 绑定的占位符
@PathVariable 该注解可以将URL中占位符参数绑定到方法的参数上,及ULR中{xxx}可以通过@PathVariable("xxx")绑定到方法参数中. 测试类: @R ...
- laravel 单词
return view('admin.user.login'); 返回 admin文件夹下, user文件夹中 login文件模板 setcookie 语法 setcookie(name,value, ...
- WPF ContextMenu的使用
<Grid.ContextMenu > <ContextMenu> <MenuItem Header="增加" Click="MenuIte ...
- C++ vector 排序
C++ vector 排序 C++中当 vector 中的数据类型为基本类型时我们调用std::sort函数很容易实现 vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结 ...
- linux_shell_字符串
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号. 但是单引号和双引号是有区别的: 单引号: 单引号里的任何 ...