pip freeze creates some weird path instead of the package version

Question:

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?

Asked By: Naeem Khoshnevis

||

Answers:

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

Answered By: adamgy

Also, you can create txt file with another name and it won’t include direct references then you can change the file name to requirements.txt

pip freeze > req.txt
Answered By: Recep Emre Başar
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.