73

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

nbro
  • 15,395
  • 32
  • 113
  • 196
saul.shanabrook
  • 3,068
  • 3
  • 31
  • 49

8 Answers8

114

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.

NoName
  • 9,824
  • 5
  • 32
  • 52
Muneeb Ali
  • 2,056
  • 1
  • 16
  • 8
11

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/.

nbro
  • 15,395
  • 32
  • 113
  • 196
Bitcoin Mexico
  • 119
  • 1
  • 4
7

For me (macOS) the following worked

path/to/venv/bin/pip3 freeze -l
Codey
  • 1,131
  • 2
  • 15
  • 34
2

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
1
python venv/Path_to/bin/pip freeze -l 
Dharman
  • 30,962
  • 25
  • 85
  • 135
0

I did try everything, even i inside venv it not worked. This code worked for me. It shows only pip packages in venv.

venv\Scripts\python.exe venv\Scripts\pip.exe freeze > requirements.txt 
-1

Install whatever you need to freeze in your virtual environment, and then

pip freeze > requirements.txt

After that install the packages in the virtual environment that you do not want to freeze.

nbro
  • 15,395
  • 32
  • 113
  • 196
César
  • 9,939
  • 6
  • 53
  • 74
-1

Try the following command:

pip -E /path/to/env/ freeze
nbro
  • 15,395
  • 32
  • 113
  • 196
Dima Bildin
  • 1,533
  • 10
  • 14