To find the location of your Python site-packages
directory (where third-party packages are installed), use one of the following methods:
1. Using the site
Module
Run this in a Python script or interactive shell:
import site
print(site.getsitepackages()) # Returns a list of site-packages paths
Example Output:
['/usr/local/lib/python3.9/site-packages', '/usr/lib/python3.9/site-packages']
2. Using sys.path
Check paths ending with site-packages
:
import sys
print([p for p in sys.path if "site-packages" in p])
Example Output:
['/home/user/.local/lib/python3.9/site-packages', '/usr/lib/python3.9/site-packages']
3. For Virtual Environments
If using a virtual environment, the path is typically:
# Unix/macOS:
<venv>/lib/pythonX.Y/site-packages
# Windows:
<venv>\Lib\site-packages
Replace <venv>
with your virtual environment directory (e.g., venv
).
4. From the Command Line
Use a one-liner to print the path:
python -c "import site; print(site.getsitepackages())"
Key Notes
- Global vs. User Installations:
- Global:
/usr/local/lib/pythonX.Y/site-packages
(Unix) orC:\PythonXY\Lib\site-packages
(Windows). - User-specific:
~/.local/lib/pythonX.Y/site-packages
(Unix) or%APPDATA%\Python\PythonXY\site-packages
(Windows). - Debian/Ubuntu Systems: May use
dist-packages
instead ofsite-packages
for system-managed packages.
Example Paths by OS
OS | Typical Path |
---|---|
Linux | /usr/local/lib/python3.9/site-packages |
macOS | /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages |
Windows | C:\Python39\Lib\site-packages |
Check via pip
Installed packages are in site-packages
. Run:
pip show <package-name> | grep "Location:"
Example:
pip show numpy | grep "Location:"
Output:
Location: /usr/local/lib/python3.9/site-packages
Why This Matters
- Debugging: Resolve
ModuleNotFoundError
by verifying paths. - Manual Installs: Place custom packages in
site-packages
. - Virtual Environments: Isolate project dependencies.