137

I am working on developing a python package. I use pip freeze > requirements.txt to add the required package into the requirement.txt file. However, I realized that some of the packages, instead of the package version, have some path in front of them.

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

Whereas, inside the environment, I get:

>>> pandas.__version__
'1.0.5'

Do you have any idea how to address this problem?

Naeem Khoshnevis
  • 2,001
  • 4
  • 18
  • 30
  • 1
    Not sure why this is happening, but it looks like pip freeze is outputting a [direct reference](https://www.python.org/dev/peps/pep-0440/#id62) for some reason. There is a discussion on Github about this issue: [pip freeze does not show version for in-place installs](https://github.com/pypa/pip/issues/8174) – adamgy Jul 13 '20 at 23:54
  • 11
    Does "pip list --format=freeze > requirements.txt" provide the expected results? – adamgy Jul 14 '20 at 00:02
  • Yes. "pip list --format=freeze > requirements.txt" resolved the problem. Thanks. – Naeem Khoshnevis Jul 14 '20 at 00:33
  • Glad I could help you, if I did, consider upvoting / accepting my answer ;) – adamgy Jul 14 '20 at 01:01
  • 1
    Done. I recently joined stackoverflow. Upvoting is not active yet :). – Naeem Khoshnevis Jul 14 '20 at 01:10

1 Answers1

280

It looks like this is an open issue with pip freeze in version 20.1, the current workaround is to use:

pip list --format=freeze > requirements.txt

In a nutshell, this is caused by changing the behavior of pip freeze to include direct references for distributions installed from direct URL references.

You can read more about the issue on GitHub:

pip freeze does not show version for in-place installs

Output of "pip freeze" and "pip list --format=freeze" differ for packages installed via Direct URLs

Better freeze of distributions installed from direct URL references

adamgy
  • 4,543
  • 3
  • 16
  • 31