В чем разница между прямой установкой pip и файл require.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

и затем запустить мою программу, она выходит из строя с ошибкой (должна была быть изменена только библиотека, поэтому я думаю, что sth изменился в этой библиотеке между двумя версиями).

Но разве обе версии не должны делать то же самое? (Конечно, я сделал все возможное, чтобы снова удалить установленную версию библиотеки между двумя тестами, используя pip uninstall elasticutils.)

Любая информация приветствуется...

2 ответа

Решение

Да, как я уже писал в моем комментарии выше, кажется, что переопределение зависимостей, когда requirements.txt состояния, отличные от зависимостей в пакетах. В моем случае установка пакета вручную также установила (более новую) версию requestsа именно 1.2.0. С использованием requirements.txt всегда установлена ​​(из-за переопределения) версия 0.14.2 requests,

Проблема решена путем обновления requests версия в requirements.txt:-)

Ну, я не знаю точно, в чем разница, но когда я хочу, чтобы что-то было установлено из файла require.txt и это git-репо, я делаю следующую строку:

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

и затем установка следующим образом:

pip install -r requirements.txt
Другие вопросы по тегам