virtualenv
virtualenv用来为一个应用创建一套“独立”的Python运行环境。
安装virtualenv
1 | pip install virtualenv |
如果现新项目需要使用独立的python运行环境,具体步骤如下:
一、创建工程目录1
2mkdir myproject
cd myproject
二、使用virtualenv创建独立的Python运行环境(此处命名为pyenv)
“-p”指定使用的python版本环境1
virtualenv -p python2/python3 pyenv
virtualenv已经成功创建了一个独立的Python运行环境,如果附上参数–no-site-packages,那么已经安装到系统Python环境中的所有第三方包都不会复制过来,这样我们可以得到了一个不带任何第三方包的“干净”的Python运行环境。
三、进入新环境同时安装依赖1
2source pyenv/bin/activate
pip/pip3 install package
在pyenv环境下,用pip安装的包都被安装到pyenv这个环境下,系统Python环境不受任何影响。pyenv环境是专门针对myproject这个应用创建的。
四、使用deactivate退出当前pyenv环境1
deactivate
工作原理:
virtualenv把系统Python复制一份到virtualenv的环境,用命令source pyenv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
pipenv
pipenv整合了virtualenv, pip, Pipfile,用于更方便地为项目建立虚拟环境并管理虚拟环境中的第三方模块。Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的requirements.txt文件。
Pipfile文件是TOML格式而不是requirements.txt这样的纯文本。一个项目对应一个Pipfile,支持开发环境与正式环境区分。默认提供default和development区分。同时提供版本锁支持,存为Pipfile.lock。
安装pipenv
1 | pip install pipenv |
常用指令
1 | pipenv --two/--three //指定python2/python3运行版本 |
pipenv install安装列表是通过读取pipfile, pipfile.lock文件实现的,如果没有这两个文件就根据requirements.txt生成pipfile和pipfile.lock并读取。单独安装模块后会自动将新模块信息添加到pipfile中, 要同时更新pipfile.lock需要运行:pipenv lock。
pipenv新建的虚拟环境放在统一的目录下, 在某个目录下运行pipenv shell时pipenv会自动在虚拟环境目录下搜索以当前目录名称开头的虚拟环境目录, 如果没找到则判断为无虚拟环境.