How to freeze packages installed only in the virtual environment?

50,237

Solution 1

You need to use the -l or --local option to freeze only the local packages (and not the global ones)

pip freeze -l > requirements.txt 

Make sure you are working in the virtualenv before doing pip freeze -l.

Solution 2

Only local packages on virtual environment

pip freeze -l > requirements.txt # or --local instead of -l

Only local packages installed by the user on virtual environment

pip freeze --user > requirements.txt

See the documentation for further details: https://pip.pypa.io/en/stable/reference/pip_freeze/.

Solution 3

For me (macOS) the following worked

path/to/venv/bin/pip3 freeze -l

Solution 4

I'm on Windows 10, python 3.6, with my virtual environment called env activated using command prompt I found that pip freeze -l does not work (error), python -m pip freeze -l does not work (gets global packages) but changing into my virtual environment Scripts directory and running pip freeze or pip freeze -l works. Here is an example of this solution/work-around with my virtual environment, env:

cd \env\Scripts
pip freeze > ..\..\requirements.txt
Share:
50,237
saul.shanabrook
Author by

saul.shanabrook

Student in highschool, learning Django

Updated on May 24, 2020

Comments

  • saul.shanabrook
    saul.shanabrook almost 4 years

    How to freeze packages installed only in the virtual environment, that is, without the global ones?