python 虚拟环境(pipenv)

    xiaoxiao2022-07-12  146

    1. python 为什么要使用虚拟环境

    在开发过程中,我们可能会开发多个项目,各个项目可能使用相同库的不同版本,因此我们需要一种方法来实现这一点。随之而来的是虚拟环境,它使我们能够为我们开发的每个应用程序创建一个小型的、隔离的环境。我们已经看到了许多管理虚拟环境的工具:virtualenv、 venv、 virtualenvwrapper、 pyenv、 pyenv-virtualenv、 pyenv-virtualenvwrapper 等等。它们都可以很好地使用 pip 和 requirements.txt 文件。作为python的开发者,在真正的开发需求完成并测试好之后,自然需要发布到正式的服务器,此时就会面临环境问题,假设服务器是一台全新的没有任何python第三方模块包,自然没有版本约束会好一点,但是那么包,也不一定全部记得,一个个手动安装始终是不现实的;再假设服务器是以前装好的,自然安装包之间会有版本问题,本机就算测试再好,在版本问题面前也都是白费。所以,需要一个虚拟的环境,在这个虚拟环境里面模拟出一个跟服务器一模一样的环境出来。

    2. 使用pipenv管理虚拟环境

    pip(pip2、pip3分别对应python的2、3版本)是python的包管理工具,使得python的第三方包的安装等任务十分方便(pip主要安装的第三方软件包来之python社区Pypi)。另外,很多python的虚拟环境工具如virtualenv、pyenv等等都得到了广泛使用,而requests库作者Kenneth Reitz开发了一个pipenv,结合了pip及virtualenv的功能和优点,集成出了pipenv这个工具。其目的是替代virtualenv和pyenv,将pip及virtualenv的功能集于一身。

    2.1. pipenv安装

    windows在dos命令行输入

    pip install pipenv

    2.2. pipenv使用

    2.2.1. 创建虚拟环境(以管理员权限运行CMD)

    进入指定的项目目录,执行以下命令,python参数指定python版本号,前提条件是本地已经安装该版本的python.

    pipenv --three/two(three代表python3,two代表python2) pipenv --python 2.7 pipenv --python 3.7

    这会在项目目录中创建两个新文件: Pipfile:该文件是TOML格式,存放当前虚拟环境的配置信息,包括python版本,pypi源以及依赖包等,pipenv根据该文件寻找项目的根目录。 在初始化虚拟环境的时候,pipenv默认会把虚拟环境的python目录以 及后来安装的各种模块放到/home/$username/.local/share/virtualenvs 如果想放到其他地方可以参考以下链接 pipenv创建环境,以及更改虚拟环境默认路径的高级用法

    2.2.2 进入和退出虚拟环境

    # activate pipenv shell # deactivate exit

    注意:如果此路径没有虚拟环境,直接运行pipenv shell也会自动先创建虚拟环境,然后进入虚拟环境子shell (用法同直接运行pipenv install)

    2.2.3 安装第三方库(pipenv install)

    pipenv支持开发环境和生产环境依赖的分离。

    直接在命令行下输入pipenv install,可能出现三种情况的结果 如果虚拟环境已经存在,则安装Pipfile中的依赖包; 如果虚拟环境不存在,但Pipfile存在,则根据Pipfile中python版本创建虚拟环境并安装依赖包; 如果虚拟环境和Pipfile都不存在,则根据系统默认python版本创建虚拟环境. pipenv install带参数安装 -pipenv install --dev 安装开发环境依赖(如py.tests,mock等),安装的是pipfile文件里面[dev-packages]下面的包 -pipenv install [package_name] 指定报名安装 -pipenv install -r requirements.txt 如果项目已经存在requirements.txt,安装requirements.txt中的所有三方库

    2.3. pipenv常用命令

    pipenv –where 输出项目根目录路径 pipenv –venv 输出虚拟环境信息 pipenv –envs 输出环境变量信息 pipenv –rm 删除当前虚拟环境 pipenv –pypi-mirror 指定PyPi的镜像 pipenv –site-packages 为虚拟环境启用site-packages pipenv check:检查包的anquanxing pipenv clean:卸载未在Pipfile.lock中指定的所有软件包 pipenv graph:显示当前安装的依赖关系图信息 pipenv lock:生成Pipfile.lock文件 pipenv run:在未激活虚拟环境时可以直接使用虚拟环境的Python执行命令 pipenv sync:安装所有在Pipfile.lock中指定的软件包 pipenv uninstall:卸载指定的软件包并将其从Pipfile中删除 pipenv update:更新指定包

    3. 项目运行在对应虚拟环境

    1、利用pycharm打开设置,查看项目解析器,可以看到下拉框会显示我们已经创建的虚拟环境,选择对应的虚拟环境解释器,运行脚本时会自动在虚拟环境下运行 2、进入对应的需要运行的项目,并在dos命令窗口输入:pipenv run python run.py

    最新回复(0)