How can I make a list of installed packages in a certain virtualenv?
VirtualenvPipVirtualenv Problem Overview
You can cd
to YOUR_ENV/lib/pythonxx/site-packages/
and have a look, but is there any convenient ways?
pip freeze
list all the packages installed including the system environment's.
Virtualenv Solutions
Solution 1 - Virtualenv
You can list only packages in the virtualenv
by
pip freeze --local
or
pip list --local
.
This option works irrespective of whether you have global site packages visible in the virtualenv
.
Note that restricting the virtualenv
to not use global site packages isn't the answer to the problem, because the question is on how to separate the two lists, not how to constrain our workflow to fit limitations of tools.
Credits to @gvalkov's comment here. Cf. also this issue.
Solution 2 - Virtualenv
Calling pip
command inside a virtualenv should list the packages visible/available in the isolated environment. Make sure to use a recent version of virtualenv that uses option --no-site-packages
by default. This way the purpose of using virtualenv is to create a python environment without access to packages installed in system python.
Next, make sure you use pip
command provided inside the virtualenv (YOUR_ENV/bin/pip
). Or just activate the virtualenv (source YOUR_ENV/bin/activate
) as a convenient way to call the proper commands for python interpreter or pip
~/Projects$ virtualenv --version
1.9.1
~/Projects$ virtualenv -p /usr/bin/python2.7 demoenv2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in demoenv2.7/bin/python2.7
Also creating executable in demoenv2.7/bin/python
Installing setuptools............................done.
Installing pip...............done.
~/Projects$ cd demoenv2.7/
~/Projects/demoenv2.7$ bin/pip freeze
wsgiref==0.1.2
~/Projects/demoenv2.7$ bin/pip install commandlineapp
Downloading/unpacking commandlineapp
Downloading CommandLineApp-3.0.7.tar.gz (142kB): 142kB downloaded
Running setup.py egg_info for package commandlineapp
Installing collected packages: commandlineapp
Running setup.py install for commandlineapp
Successfully installed commandlineapp
Cleaning up...
~/Projects/demoenv2.7$ bin/pip freeze
CommandLineApp==3.0.7
wsgiref==0.1.2
What's strange in my answer is that package 'wsgiref' is visible inside the virtualenv. Its from my system python. Currently I do not know why, but maybe it is different on your system.
Solution 3 - Virtualenv
list out the installed packages in the virtualenv
step 1: > workon envname >
step 2: >pip freeze
it will display the all installed packages and installed packages and versions
Solution 4 - Virtualenv
In Python3
pip list
Empty venv is
Package Version
---------- -------
pip 19.2.3
setuptools 41.2.0
To create a new environment
python3 -m venv your_foldername_here
Activate
cd your_foldername_here
source bin/activate
Deactivate
deactivate
You can also stand in the folder and give the virtual environment a name/folder (python3 -m venv name_of_venv).
Venv is a subset of virtualenv that is shipped with Python after 3.3.
Solution 5 - Virtualenv
If you're still a bit confused about virtualenv
you might not pick up how to combine the great tips from the answers by Ioannis and Sascha. I.e. this is the basic command you need:
/YOUR_ENV/bin/pip freeze --local
That can be easily used elsewhere. E.g. here is a convenient and complete answer, suited for getting all the local packages installed in all the environments you set up via virtualenvwrapper:
cd ${WORKON_HOME:-~/.virtualenvs}
for dir in *; do [ -d $dir ] && $dir/bin/pip freeze --local > /tmp/$dir.fl; done
more /tmp/*.fl
Solution 6 - Virtualenv
why don't you try pip list
Remember I'm using pip version 19.1 on python version 3.7.3
Solution 7 - Virtualenv
If you are using pip 19.0.3
and python 3.7.4
. Then go for pip list
command in your virtualenv. It will show all the installed packages with respective versions.
Solution 8 - Virtualenv
In my case the flask version was only visible under
Solution 9 - Virtualenv
.venv/bin/pip freeze
worked for me in bash.
Solution 10 - Virtualenv
Using python3 executable only, from:
Gitbash:
winpty my_venv_dir/bin/python -m pip freeze
Linux:
my_venv_dir/bin/python -m pip freeze