Where are the python modules stored?

PythonDirectoryModule

Python Problem Overview


I have recently started learning Python and I have 2 questions relating to modules.

  1. Is there a way to obtain a list of Python modules available (i.e. installed) on a machine?
  2. I am using Ubuntu Karmic and Synaptic for package management. I have just installed a python module.Where is the module code actually stored on my machine? (is there a default [recommended] location that modules are stored)?

Python Solutions


Solution 1 - Python

> 1) Is there a way to obtain a list of > Python modules available (i.e. > installed) on a machine?

This works for me:

help('modules')

> 2) Where is the module code actually > stored on my machine?

Usually in /lib/site-packages in your Python folder. (At least, on Windows.)

You can use sys.path to find out what directories are searched for modules.

Solution 2 - Python

On python command line, first import that module for which you need location.

import module_name

Then type:

print(module_name.__file__)

For example to find out "pygal" location:

import pygal
print(pygal.__file__)

Output:

/anaconda3/lib/python3.7/site-packages/pygal/__init__.py

Solution 3 - Python

On Windows machine python modules are located at (system drive and python version may vary):

C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib

Solution 4 - Python

You can find module code by first listing the modules:

help("modules")

This spits out a list of modules Python can import. At the bottom of this list is a phrase:

> Enter any module name to get more help. Or, type "modules spam" to > search for modules whose name or summary contain the string "spam".

To find module location:

help("module_Name")

for example:

help("signal")

A lot of information here. Scroll to the bottom to find its location

/usr/lib/python3.5/signal.py

Copy link. To see code, after exiting Python REPL:

nano /usr/lib/python3.5/signal.py

Solution 5 - Python

If you are using pip:

pip show <package name>

Sample output of pip show tensorflow:

Name: tensorflow
Version: 2.1.1
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: [email protected]
License: Apache 2.0
Location: /home/user/.local/lib/python3.6/site-packages
Requires: termcolor, six, astor, numpy, grpcio, absl-py, protobuf, tensorflow-estimator, tensorboard, gast, keras-applications, opt-einsum, wheel, keras-preprocessing, google-pasta, scipy, wrapt
Required-by: tf-models-official

The installed location is shown at Location:/home/user/.local/lib/python3.6/site-packages.

Solution 6 - Python

  1. You can iterate through directories listed in sys.path to find all modules (except builtin ones).
  2. It'll probably be somewhere around /usr/lib/pythonX.X/site-packages (again, see sys.path). And consider using native Python package management (via pip or easy_install, plus yolk) instead, packages in Linux distros-maintained repositories tend to be outdated.

Solution 7 - Python

If you are using conda or pip to install modules you can use

pip list

or

conda list

to display all the modules. This will display all the modules in the terminal itself and is much faster than

>>> help('modules')

Solution 8 - Python

1) Using the help function

Get into the python prompt and type the following command:

>>>help("modules")

This will list all the modules installed in the system. You don't need to install any additional packages to list them, but you need to manually search or filter the required module from the list.

2) Using pip freeze

sudo apt-get install python-pip
pip freeze

Even though you need to install additional packages to use this, this method allows you to easily search or filter the result with grep command. e.g. pip freeze | grep feed.

You can use whichever method is convenient for you.

Solution 9 - Python

On Linux, use grep to find a chosen module, no extra installation needed for that, quickly done.

The -r stands for recursive search in the sub-directories and the l to show only the files, not the directories. Usually you can see the locations from the upcoming list, and you can stop the output with Ctrl-C.

grep -rl module_name_or_part_of_name /

or, borrowed from the value comment here from this user:

pip list | grep module_name_or_part_of_name

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmorpheousView Question on Stackoverflow
Solution 1 - PythonXavier HoView Answer on Stackoverflow
Solution 2 - PythonPanNikView Answer on Stackoverflow
Solution 3 - PythonBhaskar JagadeeshaView Answer on Stackoverflow
Solution 4 - Pythonuser3424230View Answer on Stackoverflow
Solution 5 - PythonlollalollaView Answer on Stackoverflow
Solution 6 - PythonCat Plus PlusView Answer on Stackoverflow
Solution 7 - PythonTrectView Answer on Stackoverflow
Solution 8 - PythonAbrar AhmadView Answer on Stackoverflow
Solution 9 - Pythonquestionto42standswithUkraineView Answer on Stackoverflow