简介

Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv。

该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持。每一个虚拟环境都有其自己的Python二进制(允许有不同的Python版本创作环境),并且可以拥有自己独立的一套Python包。

需要注意的是,在Python3.3中使用”venv”命令创建的环境不包含”pip”,你需要进行手动安装。在Python3.4中改进了这一个缺陷。

创建虚拟环境

在当前目录创建虚拟环境(你需要先手动创建目录并CD到目录):

    $ python -m venv .

下面是”venv”的详细使用参数:

    usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
                [--upgrade] [--without-pip]
                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)
    
    Once an environment has been created, you may wish to activate it, e.g. by
    sourcing an activate script in its bin directory.

激活虚拟环境

在Posix标准平台下:

    $ source <venv目录>/bin/activate

在Windows cmd下:

    C:> <venv目录>/Scripts/activate.bat

在Windows PowerShell下:

    PS C:> <venv>/Scripts/Activate.ps1

激活虚拟环境后,在命令行会提示当前虚拟环境的名称,就表示激活成功了。

文章抄自:https://cnhv.co/1jrfj

(完)