• 使用pipenv管理虚拟环境


    使用pipenv管理虚拟环境

    安装

    pip install pipenv

    命令介绍

    pipenv --help
    Usage: pipenv [OPTIONS] COMMAND [ARGS]...
    Options:
    --update         升级 pipenv, pip 到最新.
    --where输出项目的目录信息.
    --venv           输出 virtualenv 的目录信息.
    --py             输出Python解析器的路径.
    --envs           输出环境变量的设置.
    --rm             删除当前 virtualenv.
    --bare           Minimal output.
    --completion     Output completion (to be evald).
    --man            显示使用手册.
    --three /--two  使用Python3/2来创建 virtualenv
    --python TEXT    直接指定Python解析器.
    --site-packages  拷贝系统 site-packages 到 virtualenv.
    --jumbotron      An easter egg, effectively.
    --version        显示版本信息并退出.
    -h,--help       显示当前信息并退出.
    Commands:
     check      检查安全漏洞和反对 PEP 508标记在Pipfile提供.
     graph      显示当前依赖关系图信息.
     install    安装提供的包,并加入Pipfile的依赖清单中
     lock生成Pipfile.lock.
     open       在编辑器(vim)查看一个特定模块.
     run        在 virtualenv 中执行命令.
     shell      切换到 virtualenv 中.
     uninstall  删除提供的包,并清理Pipfile的依赖清单中.
     update     卸载当前所以依赖,然后安装最新包

    创建虚拟环境

    pipenv --three 

    具体使用

    一些例子:
    
    Usage Examples:
       Create a new project using Python 3.6, specifically:
       $ pipenv --python 3.6
    
       Install all dependencies for a project (including dev):
       $ pipenv install --dev
    
       Create a lockfile containing pre-releases:
       $ pipenv lock --pre
    
       Show a graph of your installed dependencies:
       $ pipenv graph
    
       Check your installed dependencies for security vulnerabilities:
       $ pipenv check
    
       Install a local setup.py into your virtual environment/Pipfile:
       $ pipenv install -e .
    
       Use a lower-level pip command:
       $ pipenv run pip freeze
    pipenv 使用过程
    创建环境,安装指定 python 的版本信息:
    mkdir new_env & cd new_env
    pipenv install     // pipenv install --three
    如果指定了 --two 或者 --three 选项参数,则会使用 python2 或者 python3 的版本安装,否则将使用默认的 python 版本来安装。当然也可以指定准确的版本信息:
    
    $ pipenv install --python 3
    $ pipenv install --python 3.6
    $ pipenv install --python 2.7.14
    pipenv 会自动扫描系统寻找合适的版本信息,如果找不到的话,同时又安装了 pyenv 的话,则会自动调用 pyenv 下载对应版本的 python, 否则会报错。
    
    这时候在当前 new_env 环境下生成 Pipfile 和 Pipfile.lock 两个环境初始化文件。
    
    进入|退出环境:
    进入环境:
    
    pipenv shell
    退出环境:
    
    exit //或者 ctrl+d
    安装第三方包:
    这里我们测试安装 urllib3 包好了:
    
    pipenv install urllib3
    此时,Pipfile 里有最新安装的包文件的信息,如名称、版本等。用来在重新安装项目依赖或与他人共享项目时,你可以用 Pipfile 来跟踪项目依赖。
    
    Pipfile 是用来替代原来的 requirements.txt 的,内容类似下面这样。source 部分用来设置仓库地址,packages 部分用来指定项目依赖的包,dev-packages 部分用来指定开发环境需要的包,这样分开便于管理。
    
    $ cat Pipfile
    [[source]]
    url = "https://pypi.org/simple"
    verify_ssl = true
    name = "pypi"
    
    [packages]
    "urllib3" = "*"
    
    [dev-packages]
    
    [requires]
    python_version = "3.6"
    Pipfile.lock 则包含你的系统信息,所有已安装包的依赖包及其版本信息,以及所有安装包及其依赖包的 Hash 校验信息。
    
    $ Pipfile.lock
    {
        "_meta": {
            "hash": {
                "sha256": "af58f3510cb613d4d9241128f9a0ceb9bb936ad907543e23ad8317011dcb6715"
            },
            "pipfile-spec": 6,
            "requires": {
                "python_version": "3.6"
            },
            "sources": [
                {
                    "name": "pypi",
                    "url": "https://pypi.org/simple",
                    "verify_ssl": true
                }
            ]
        },
        "default": {                
             "urllib3": {
                "hashes": [
                    "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf",
                    "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5"
                ],
                "index": "pypi",
                "version": "==1.23"
            }
        },
        "develop": {}
    }
    现在安装另一个包,再次查看这两个文件的内容。你会发现 Pipfile 现在包含两个安装包了,Pipfile.lock 也包含了所有已安装包的依赖包及其版本信息,以及所有安装包及其依赖包的 Hash 校验信息。每次你安装新的依赖包,这两个文件都会自动更新。
    
    安装指定版本包:
    pipenv install urllib3==1.22
    安装开发环境下的包:
    加 --dev 表示包括 Pipfile 的 dev-packages 中的依赖。
    
    pipenv install httpie --dev
    卸载第三方包:
    pipenv uninstall urllib3 //或者 pipenv uninstall --all
    更新安装包:
    pipenv update urllib3
    更新所有包:
    
    pipenv update
    这个命令会删除所有软件包然后重新安装最新的版本。
    
    查看虚拟环境目录:
    $ pipenv --venv
    /Users/liyafeng/.local/share/virtualenvs/new_env-UVLdq9CB
    最后的虚拟环境目录是以当前环境 new_env 作为目录开头的。
    
    查看项目根目录:
    $ pipenv --where
    /Users/liyafeng/Documents/www/pythondemo/new_env
    检查软件包的完整性
    你是否担心已安装的软件包有没有安全漏洞?没关系,pipenv 可以帮你检查,运行下面的命令:
    
    $  pipenv check
    Checking PEP 508 requirements…
    Passed!
    Checking installed package safety…
    All good!
    上面的命令根据 Pipfile 里的 PEP 508 标记检查安全漏洞。
    
    查看依赖树
    $ pipenv graph
    httpie==0.9.9
      - Pygments [required: >=2.1.3, installed: 2.2.0]
      - requests [required: >=2.11.0, installed: 2.19.1]
        - certifi [required: >=2017.4.17, installed: 2018.4.16]
        - chardet [required: <3.1.0,>=3.0.2, installed: 3.0.4]
        - idna [required: <2.8,>=2.5, installed: 2.7]
        - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
    锁定版本
    更新 lock 文件锁定当前环境的依赖版本
    
    pipenv lock
    环境变量管理
    如果你开发调试时需要配一堆环境变量,可以写到 .env 文件中,在 pipenv shell 进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。
    
    例如写一个 .env 文件:
    
    echo "FOO=hello foo" > .env
    之后 pipenv shell 进入虚拟环境,echo $FOO 就能看环境变量的值 hello foo 已经设置好了。
  • 相关阅读:
    祖传屎山代码
    WebService原理及重要术语
    ML-For-Beginners
    Row Level Security行级数据安全,简称RLS。
    浅析 Dapr 里的云计算设计模式
    讲师征集| .NET Conf China 2021正式启动
    为什么 Dapr 如此令人兴奋
    Open Application Model(OAM)的 Kubernetes 标准实现 Crossplane 项目 成为 CNCF 孵化项目
    kubectl 的插件管理工具krew
    PrimeBlazor 组件以MIT 协议开源
  • 原文地址:https://www.cnblogs.com/zhaijihai/p/11451563.html
Copyright © 2020-2023  润新知