【问题标题】:What's the difference between direct pip install and the requirements.txt?直接 pip install 和 requirements.txt 有什么区别?
【发布时间】:2013-05-12 19:01:32
【问题描述】:

我很困惑。我有一个工作的pip install 命令(意思是:它安装了一个适用于我的 Github 的库版本),我有一个不工作的(意思是:它安装了一个不工作的库版本me) 将该要求放入requirements.txt 文件的方式。

更具体的:

如果我在命令行输入

pip install -e 'git://github.com/mozilla/elasticutils.git#egg=elasticutils'

然后测试我的程序,一切正常。如果我将此行放入我的requirements.txt:

-e git://github.com/mozilla/elasticutils.git#egg=elasticutils

然后运行我的程序,它因错误而中断(只有库应该已更改,所以我猜该库在两个版本之间发生了变化)。

但是两个版本不应该完全相同吗? (当然我已经尽我所能在两次测试之间再次删除已安装的库版本,使用pip uninstall elasticutils。)

欢迎提供任何信息……

【问题讨论】:

  • 啊,我刚刚发现,通过将它放入requirements.txt,它与该文件中的其他行一起被评估;一个是声明requests==0.14.2,这似乎覆盖了elasticutils包需要的东西。我会看看这是否可以解决这个问题。

标签: python github pip requirements.txt


【解决方案1】:

是的,正如我在上面的评论中所写,当requirements.txt 状态与包中的依赖项不同时,似乎存在依赖项覆盖。在我的情况下,手动安装软件包还安装了requests 的(较新)版本,即 1.2.0。使用 requirements.txt 始终安装(由于覆盖)requests 的版本 0.14.2。

通过更新requirements.txt 中的requests 版本解决了问题:-)

【讨论】:

    【解决方案2】:

    嗯,我不知道到底有什么区别,但是当我想从 requirements.txt 安装一些东西并且它是一个 git repo 时,我会执行以下行:

    #git+https://github.com/user/package_name.git
    

    然后安装如下:

    pip install -r requirements.txt
    

    【讨论】:

    • 感谢您的回答,但我认为这与requirements.txt 中的其他行有关,它们似乎覆盖了我想要的包中的依赖项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 2019-06-09
    • 2012-07-24
    相关资源
    最近更新 更多