I activated a virtualenv which has pip installed. I did
pip3 install Django==1.8
and Django successfully downloaded. Now, I want to open up the Django folder. Where is the folder located?
Normally it would be in “downloads”, but I’m not sure where it would be if I installed it using pip in a virtualenv.
pip show <package name> will provide the location for Windows and macOS, and I’m guessing any system. 🙂
> pip show cvxopt Name: cvxopt Version: 1.2.0 ... Location: /usr/local/lib/python2.7/site-packages
pip when used with virtualenv will generally install packages in the path
For example, I created a test virtualenv named venv_test with Python 2.7, and the
django folder is in
pip list -v can be used to list packages’ install locations, introduced in https://pip.pypa.io/en/stable/news/#b1-2018-03-31
Show install locations when list command ran with “-v” option. (#979)
>pip list -v Package Version Location Installer ------------------------ --------- -------------------------------------------------------------------- --------- alabaster 0.7.12 c:usersmeappdatalocalprogramspythonpython38libsite-packages pip apipkg 1.5 c:usersmeappdatalocalprogramspythonpython38libsite-packages pip argcomplete 1.10.3 c:usersmeappdatalocalprogramspythonpython38libsite-packages pip astroid 2.3.3 c:usersmeappdatalocalprogramspythonpython38libsite-packages pip ...
This feature is introduced in
pip 10.0.0b1. On Ubuntu 18.04 (Bionic Beaver),
pip3 installed with
sudo apt install python-pip or
sudo apt install python3-pip is 9.0.1 which doesn’t have this feature.
Check https://github.com/pypa/pip/issues/5599 for suitable ways of upgrading
Easiest way is probably
This will show you where your pip is installed and therefore where your packages are located.
By default, on Linux, Pip installs packages to /usr/local/lib/python2.7/dist-packages.
Using virtualenv or –user during install will change this default location. If you use
pip show make sure you are using the right user or else
pip may not see the packages you are referencing.
In a Python interpreter or script, you can do
import site site.getsitepackages() # List of global package locations
site.getusersitepackages() # String for user-specific package location
For locations third-party packages (those not in the core Python distribution) are installed to.
On my Homebrew-installed Python on macOS, the former outputs
which canonicalizes to the same path output by
pip show, as mentioned in a previous answer:
$ readlink -f /usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages /usr/local/lib/python3.7/site-packages
One can import the package then consult its help
import statsmodels help(sm)
At the very bottom of the help there is a section
FILE that indicates where this package was installed.
This solution was tested with at least matplotlib (3.1.2) and statsmodels (0.11.1) (python 3.8.2).
The safest way is to call
pip through the specific
python that you are executing. If you run
pip show pip directly, it may be calling a different
pip than the one that
python is calling. Examples:
$ python -m pip show pip $ python3 -m pip show pip $ /usr/bin/python -m pip show pip $ /usr/local/bin/python3 -m pip show pip
Here’s an example showing how they can differ:
$ pip show pip Location: /usr/local/lib/python3.9/site-packages $ python -m pip show pip Location: /Library/Python/2.7/site-packages