pip freeze создает странный путь вместо версии пакета

Я работаю над разработкой пакета Python. я используюpip freeze > requirements.txtдля добавления необходимого пакета в файл require.txt. Однако я понял, что перед некоторыми пакетами вместо версии пакета указан путь.

numpy==1.19.0
packaging==20.4
pandas @ file:///opt/concourse/worker/volumes/live/38d1301c-8fa9-4d2f-662e-34dddf33b183/volume/pandas_1592841668171/work
pandocfilters==1.4.2

А внутри среды я получаю:

>>> pandas.__version__
'1.0.5'

Вы знаете, как решить эту проблему?

2 ответа

Решение

Похоже, это нерешенная проблема с pip freeze в версии 20.1, текущий обходной путь заключается в использовании:

pip list --format=freeze > requirements.txt

Короче говоря, это вызвано изменением поведения pip freezeдля включения прямых ссылок на дистрибутивы, установленные по прямым URL-адресам.

Вы можете узнать больше о проблеме на GitHub:

pip freeze не показывает версию для установки на месте

Вывод "pip freeze" и "pip list --format=freeze" отличается для пакетов, установленных через прямые URL-адреса.

Лучшее замораживание дистрибутивов, установленных по прямым URL-адресам

Кроме того, вы можете создать текстовый файл с другим именем, и он не будет содержать прямых ссылок, тогда вы можете изменить имя файла на requirements.txt.

      pip freeze > req.txt
Другие вопросы по тегам