pipenv 笔记

作者: ab64fd4eaee3 | 来源:发表于2018-07-29 14:46 被阅读97次

    这里记录一下开发中常用的命令,基本上用法非常顺应直觉,和通常使用 pip + requirements.txt + virtualenv 这个组合并没有太大区别。更多高端用法,尽在 https://docs.pipenv.org/

    Pipfile & Pipfile.lock

    Pipfile是用来替代原来的requirements.txt的。
    内容类似下面这样。source部分用来设置仓库地址,packages部分用来指定项目依赖的包,dev-packages部分用来指定开发环境需要的包,这样分开便于管理。

    [[source]]
    
    url = "https://pypi.python.org/simple"
    verify_ssl = true
    name = "pypi"
    
    [packages]
    
    requests = "*"
    parsel = "==1.3.1"
    celery = "*"
    
    [dev-packages]
    
    pymysql = "*"
    
    

    Pipfile.lock中记录了当前环境中安装的依赖的版本号以及哈希,以保证每次装出来的依赖都是一致的。

    安装

    pip install pipenv
    
    

    创建环境

    一行命令搞定 virtualenv 和 pipfile 的初始化,它会在你的用户目录下对你的 virtualenv 进行统一管理。如果当前目录下有 requirements.txt 文件,它会非常贴心地帮你自动转换。(随后你就可以把 requirements.txt 扔掉了)

    初始化一个 python3 的环境

    pipenv --three
    
    

    初始化一个 python2 的环境(不过都已经 2018 年了,你还要用 2 吗)

    pipenv --two
    
    

    初始化特定版本的环境

    pipenv --python 3.6
    
    

    pypy 也是可以的

    pipenv --python pypy3
    
    

    进入 / 退出环境

    进入环境

    pipenv shell
    
    

    退出环境

    exit
    
    

    安装 / 更新 / 卸载依赖

    安装项目已有的所有依赖,加--dev表示包括 Pipfile 的 dev-packages 中的依赖。

    pipenv install --dev
    
    

    安装某个包。

    pipenv install requests
    
    

    安装指定版本的包,安装时加--dev表示加入到 dev 环境。

    pipenv install parsel==1.3.1
    
    

    从项目中更新某个包

    pipenv update requests
    
    

    或更新所有的包

    pipenv update
    
    

    从项目环境中移除某个包

    pipenv uninstall requests
    
    

    另外,Pipefile 和 Pipefile.lock 都会按照你的操作进行自动的更新,如果需要手动修改包的依赖条件,手工编辑 Pipefile 并进行安装即可。

    在 Dockerfile 中安装依赖,加--system参数表示使用 pip 直接安装相应依赖,不创建虚拟环境。

    RUN pipenv install --deploy --system
    
    

    打印环境中已安装的包

    pipenv graph
    
    

    能够更清晰地展示现有依赖包。

    锁定版本

    更新 lock 文件锁定当前环境的依赖版本

    pipenv lock
    
    

    环境变量管理

    如果你开发调试时需要配一堆环境变量,可以写到.env文件中,在pipenv shell进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。

    例如写一个.env文件

    echo "FOO=23333" > .env
    
    

    之后pipenv shell进入虚拟环境,echo $FOO就能看环境变量的值23333已经设置好了。

    写起项目来更加优♂雅了,诶嘿嘿~


    美中不足,PyCharm 目前还不支持 pipenv,因此暂时还需要在 PyCharm 项目设置里手工指定虚拟环境的路径 (在~/.virtualenvs/下面找),密切关注什么时候他们能把这个东西支持了 PY-26492 Add pipenv support

    </article>

    相关文章

      网友评论

        本文标题:pipenv 笔记

        本文链接:https://www.haomeiwen.com/subject/kyukpftx.html