• python工程设置工具(pipenv)


    原始安装

    pip工具 --- 包安装工具, 可以从Python包索引hub上安装,也可以使用自定义的hub。

    命令:

    pip install xxx

    缺点:

    1、命令方式, 一次只能安装一个包, 对于工程来说包可能是数十个,需要手动依次安装,累。

    2、安装的目录为python全局公共库,会影响其他工程。

    3、如果不适用freeze命令,生成依赖的配置文件, 则不利于后续维护,其他同事无法从工程文件中获取依赖包的版本号,

    https://www.cnblogs.com/wilber2013/p/4769467.html#_nav_6

    pip freeze > requirements.txt

    # 使用pip导出依赖文件列表

    pip install -r requirements.txt

    https://pypi.org/project/pip/

    pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other indexes.

    Please take a look at our documentation for how to install and use pip:

    virtualenv

    虽然适用pip freeze可以获取依赖包配置文件, 但是仍然解决不了工程隔离的目标, 即一个工程安装的依赖 不影响 另外一个工程安装的依赖。

    virtualenv,就是用来解决这个问题。

    https://virtualenv.pypa.io/en/stable/

    virtualenv is a tool to create isolated Python environments. Since Python 3.3, a subset of it has been integrated into the standard library under the venv module. Note though, that the venv module does not offer all features of this library (e.g. cannot create bootstrap scripts, cannot create virtual environments for other python versions than the host python, not relocatable, etc.). Tools in general as such still may prefer using virtualenv for its ease of upgrading (via pip), unified handling of different Python versions and some more advanced features.

    https://www.liaoxuefeng.com/wiki/1016959663602400/1019273143120480

    使用如下,安装的依赖包,会安装到项目自身的虚拟环境中。

    Mac:myproject michael$ source venv/bin/activate
    (venv)Mac:myproject michael$
    

    注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。

    下面正常安装各种第三方包,并运行python命令:

    (venv)Mac:myproject michael$ pip install jinja2
    ...
    Successfully installed jinja2-2.7.3 markupsafe-0.23
    (venv)Mac:myproject michael$ python myapp.py
    ...
    

    venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。

    退出当前的venv环境,使用deactivate命令:

    (venv)Mac:myproject michael$ deactivate 
    Mac:myproject michael$ 
    

    pipenv

    https://crazygit.wiseturtles.com/2018/01/08/pipenv-tour/

    pipenvPython官方推荐的包管理工具。可以说,它集成了virtualenv, pippyenv三者的功能。其目的旨在集合了所有的包管理工具的长处,如: npm, yarn, composer等的优点。

    它能够自动为项目创建和管理虚拟环境,从Pipfile文件添加或删除安装的包,同时生成Pipfile.lock来锁定安装包的版本和依赖信息,避免构建错误。

    pipenv主要解决了如下问题:

    • 不用再单独使用pipvirtualenv, 现在它们合并在一起了
    • 不用再维护requirements.txt, 使用PipfilePipfile.lock来代替
    • 可以使用多个python版本(python2python3)
    • 在安装了pyenv的条件下,可以自动安装需要的Python版本

    其主要优点:

    不需要自行维护requirement.txt文件, 安装的依赖仅仅本工程使用,其它工程不会影响。

     pipenv install requests==2.13.0
  • 相关阅读:
    学习zabbix(一)
    学习openstack(七)
    并不对劲的bzoj3677:p3647:[APIO2014]连珠线
    并不对劲的bzoj5415:loj2718:uoj393:p4768:[NOI2018]归程
    并不对劲的bzoj5475:loj2983:p5206:[wc2019]数树
    并不对劲的多项式求ln,exp
    并不对劲的bzoj1758:p4292:[WC2010]重建计划
    (中等) UESTC 94 Bracket Sequence,线段树+括号。
    (简单) HDU 5154 Harry and Magical Computer,图论。
    (中等) UESTC 360 Another LCIS ,线段树+区间更新。
  • 原文地址:https://www.cnblogs.com/lightsong/p/11629754.html
Copyright © 2020-2023  润新知