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