【问题标题】:How to freeze a requirement with pipenv?如何使用 pipenv 冻结需求?
【发布时间】:2018-08-14 16:03:29
【问题描述】:

例如,我们有一些 pipfile(如下),我想冻结 django 版本。我们没有 requirements.txt,我们只使用 pipenv。如何冻结 django 版本?

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
django = "*"

[dev-packages]
black = "*"

[requires]
python_version = "3.6"

【问题讨论】:

    标签: python pipenv pipfile


    【解决方案1】:

    Pipenv 本身就实现了冻结 requirements.txt。 很简单:

    pipenv lock -r > requirements.txt
    

    【讨论】:

    • @arshbot 与此答案相比,接受的答案的质量很差。考虑将此标记为已接受的答案。
    【解决方案2】:

    假设您已激活虚拟环境,您有三种简单的方法。我会从不太冗长到更冗长列出它们。

    $ pip freeze > requirements.txt
    

    点3

    $ pip3 freeze > requirements.txt
    

    如果虚拟环境处于活动状态,pip 肯定等同于pip3

    pipenv 运行

    $ pipenv run pip freeze > requirements.txt
    $ pipenv run pip3 freeze > requirements.txt
    

    pipenv run 生成一个安装到虚拟环境中的命令,因此这些命令等同于没有pipenv run 运行的命令。再次假设您的虚拟环境处于活动状态。

    【讨论】:

      【解决方案3】:

      通过使用run,您可以从 virtualenv 运行给定的命令,并转发任何参数

      $ pipenv run pip freeze  > requirements.txt 
      

      【讨论】:

        【解决方案4】:

        就像将django = "*" 更改为django = "your-preferred-version" 一样简单。因此,如果您想将其冻结为 2.1,即撰写本文时的最新版本,您可以这样做:

        [packages]
        django="2.1"
        

        pipfile Git 存储库有一些很好的示例,说明了指定版本字符串的不同方法:https://github.com/pypa/pipfile#pipfile

        请注意,当您从 pipfile 生成锁定文件时,该锁定文件实际上是应该将您的依赖项“冻结”到特定版本的文件。这样,您不必担心哪个版本适用于您的代码,因为通过分发锁文件,其他所有人都必须使用与您相同的依赖版本。 pipenv 的开发者打算供开发者使用它like this

        【讨论】:

        • 有没有办法通过 pipenv 做到这一点?还是我必须自己打开 pipfile?
        • 这很奇怪,这是一个== 符号
        • 这个答案对我不起作用(关于Pipfile。对我有用的是django = "==2.1"
        【解决方案5】:

        首先,确保您的虚拟环境活动,然后打开终端并运行命令 pip3 冻结 > reqirements.txt (pip3) pip3 冻结 > reqirements.txt (pip3)

        【讨论】:

          【解决方案6】:

          这是 pipenv 提示我从项目的 Pipfile 生成 requirements.txt 文件的方式:

          pipenv lock --requirements
          

          【讨论】:

            【解决方案7】:

            您可以使用以下命令创建 requirements.txt:

            pip3 freeze > requirements.txt
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-06-03
              • 1970-01-01
              • 2015-11-30
              • 2019-07-01
              • 1970-01-01
              • 2013-08-03
              • 2014-02-22
              • 2013-11-21
              相关资源
              最近更新 更多