zoukankan      html  css  js  c++  java
  • 使用pipenv

    环境:pipenv-2020.11.15.0

    以前经常使用virtualenv来创建虚拟环境,通过pip freeze生成requirements.txt文件,然后通过pip install -r requirements.txt进行项目模块的管理与安装。这样的安装存在很多问题,比如每次更新模块后,需要手动的重新生成依赖文件. 最新在做新项目,所以试用一下pipenv.

    Pipenv试图解决的问题是多方面的:

    • 不再需要单独使用pip和使用virtualenv。他们被整合起来协同工作。
    • 管理requirements.txt文件可能会有问题,因此Pipenv使用文件Pipfile,Pipfile.lock而
    • 哈希总是随处可见。安全。自动暴露安全漏洞。
    • 让您深入了解您的依赖图(例如$ pipenv graph)。
    • 通过加载.env文件简化开发工作流程

    Pipenv安装:pip install pipenv

    之后创建一个我们的项目目录并进入目录输入:pipenv install 创建目录对应的虚拟机。
    虚拟机创建目录:

    • windows : %homepath%.virtualenvsprojectname-随机码
    • LinuxMac: ~/.local/share/virtualenvs/projectname-随机码

    虚拟机创建完成后,会在项目目录内生成两个包管理文件文件Pipfile、Pipfile.lock

    进入虚拟机: pipenv shell

    修改pip源: 修改pipfile文件的url一行,比如变成

    url = "https://mirrors.aliyun.com/pypi/simple"

    阿里的镜像verify_ssl无需修改,但是有些镜像是http协议的,你需要吧verify_ssl改为false,否则报错无法使用。

    PIPfile中有两个section标签,一个是dev-packages,一个是packages,这两个有什么区别呢?当pipenv install flask时,我们安装的是packages,  当pipenv install watchdog --dev 时,我们安装的是dev-packages.


    这两者有什么区别呢?比如我们在开发的过程中会引入一些工具,但这些工具在交付或者上线的时候无需安装,此时我们可以使用--dev的方式安装,而客户在初始化安装时使用pipenv install就不会将开发使用的模块进行安装,针对环境进行模块分离.

    Pipfile.lock是一个json文件,详细记录了我们安装的每一个模块及模块的详细信息,如:名称、版本、Hash值。这样安装卸载变得更为容易与准确。 模块依赖展示是pipenv比较人性化的特征。

    项目迁移 我们之前使用的virtualenv,可以迁移至pipenv吗?
    答案是肯定的,只需要先通过pipenv install -r requirements.txt将原有的模块进行迁移,之后使用.
    同样的,从pipenv迁移至virtualenv项目,也可以使用pipenv run pip freeze 生成requirements.txt。 .env介绍 在虚拟机中,我们的环境信息如何保存呢?比如邮箱,入口方法,等等…这时候我们需要使用到.env的文件。

    命令集合 :

    命令 说明
    pipenv --where 列出本地工程路径
    pipenv --venv 列出虚拟环境路径
    pipenv --py 列出虚拟环境的Python可执行文件
    pipenv install 创建虚拟环境
    pipenv install [moduel] 安装包
    pipenv install [moduel] --dev 安装包到开发环境
    pipenv uninstall[module] 卸载包
    pipenv uninstall --all 卸载所有包
    pipenv graph 查看包依赖
    pipenv lock 生成lockfile
    pipenv run python [pyfile] 运行py文件
    pipenv --rm 删除虚拟环境
  • 相关阅读:
    校园网认证原理
    使VS Code自带的Markdown支持mathjax
    图像处理实用资源
    第一周的python作业
    Python中关于turtle库的笔记
    软件测试入门篇
    如何设计一条好的测试用例打卡第二天
    根据用户登录浅谈软件测试打卡第一天
    Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析
    论Activity及启动模式,Fragment,Service的使用以及生命周期
  • 原文地址:https://www.cnblogs.com/worldinmyeyes/p/14589456.html
Copyright © 2011-2022 走看看