直接pip安装和requirements.txt有什么区别?

时间:2013-05-17 14:48:56

标签: python github pip requirements.txt

我很困惑。我有一个工作pip install命令(意思是:它从Github安装了一个适用于我的库版本),我有一个不工作的(意思是:它安装了一个没有的库版本为我工作)将该要求放入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再次在两个测试之间删除已安装的库版本。)

欢迎任何信息......

2 个答案:

答案 0 :(得分:1)

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

通过更新requests中的requests版本来解决问题: - )

答案 1 :(得分:0)

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

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

然后安装如下:

pip install -r requirements.txt