python最佳实践--python多环境管理使用方便快捷强大的virtualenv

在使用python开发项目的过程中,python因为版本的原因,有诸多的库在某些特定的python版本才可以运行,我们就需要将单个项目的python环境单独出来,python的虚拟环境管理工具有很多种,venv、virtualenv、pyenv、anacona 等,各式各样,眼花缭乱,都不知道如何选择

那最佳的,最适合我们的是什么?根据我长期的使用,我觉得 virtualenv 是最佳的选择,virtualenv如何使用 ?

1、安装,使用pip安装即可

pip install virtualenv

2、使用

安装好virtualenv就可以直接使用命令创建一个虚拟环境,如下命令创建是创建一个 venv 的虚拟环境

virtualenv venv

同时,virtualenv 也有很多参数,可以使用帮助命令来查看命令说明

virtualenv --h

其中,经常用的一些参数,我给大家翻一下

Usage: virtualenv [OPTIONS] DEST_DIR

Options:
  --version             show program's version number and exit 
    显示版本号并退出  -h, --help            show this help message and exit 
    显示本帮助信息并退出  -v, --verbose         Increase verbosity. 
    增量信息  -q, --quiet           Decrease verbosity. 
    消除冗长  -p PYTHON_EXE, --python=PYTHON_EXE 
                        The Python interpreter to use, e.g.,
                        --python=python2.5 will use the python2.5 interpreter
                        to create the new environment.  The default is the
                        interpreter that virtualenv was installed with                        (/usr/share/python3/bin/python3.5)
    设定虚拟环境中Python的运行版本  --clear               Clear out the non-root install and start from scratch. 
                        default behavior.
  --system-site-packages
                        Give the virtual environment access to the global
                        site-packages.

    如果在命令行中运行virtualenv --system-site-packages ENV, 会继承/usr/lib/python2.7/site-packages下的所有库, 最新版本virtualenv把访问全局site-packages作为默认行为    default behavior.
  --always-copy         Always copy files rather than symlinking.
  --unzip-setuptools    Unzip Setuptools when installing it.
  --relocatable         Make an EXISTING virtualenv environment relocatable.
                        This fixes up scripts and makes all .pth files
                        relative.
    某些特殊需求下,可能没有网络, 我们期望直接打包一个ENV, 可以解压后直接使用, 这时候可以使用virtualenv -relocatable指令将ENV修改为可更改位置的ENV  --no-setuptools       Do not install setuptools in the new virtualenv. 不安装setuptools  --no-pip              Do not install pip in the new virtualenv. 不安装pip  --no-wheel            Do not install wheel in the new virtualenv.不安装wheel  --extra-search-dir=DIR
                        Directory to look for setuptools/pip distributions in.
                        This option can be used multiple times.
  --download            Download preinstalled packages from PyPI.
  --no-download, --never-download
                        Do not download preinstalled packages from PyPI.
  --prompt=PROMPT       Provides an alternative prompt prefix for this
                        environment.
  --setuptools          DEPRECATED. Retained only for backward compatibility.
                        This option has no effect.
  --distribute          DEPRECATED. Retained only for backward compatibility.
                        This option has no effect.
    使virtualenv使用新的基于发行版的包管理系统而不是 setuptools 获得的包。 你现在需要知道的就是 --distribute 选项会自动在新的虚拟环境中安装 pip ,这样就不需要手动安装了。


进入虚拟环境

linux 环境下,使用 source 命令进入虚拟环境

source venv/bin/activete

退出命令则运行如下命令即可

deactivate


windows环境下,进入虚拟环境的方法有所有不同,可以直接运行环境根目录下 Scripts 的 shell 脚本,使用cmd打开的就运行 ****.bat 的脚本,用powershell打开的就是用 ****.ps1脚本

.\venv\Scripts\activate.ps1

退出命令同样是:deactivate


最后我给出使用 virtualenv 的一些使用建议

我们在做项目时候,建议最好一个项目使用一个虚拟环境,放在项目的根目录下,使得在发布项目的时候方便快捷,在项目部署时,使用 pip freeze > requirements.txt 到处依赖包列表。

你可能感兴趣的:(python最佳实践--python多环境管理使用方便快捷强大的virtualenv)