Question :
I have recently started learning Python and I have 2 questions relating to modules.
- Is there a way to obtain a list of Python modules available (i.e. installed) on a machine?
- 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)?
Answer #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')
- 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.
Answer #2:
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
Answer #3:
On Windows machine python modules are located at (system drive and python version may vary):
C:UsersAdministratorAppDataLocalProgramsPythonPython38Lib
Answer #4:
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
Answer #5:
- You can iterate through directories listed in
sys.path
to find all modules (except builtin ones). - It’ll probably be somewhere around
/usr/lib/pythonX.X/site-packages
(again, seesys.path
). And consider using native Python package management (viapip
oreasy_install
, plusyolk
) instead, packages in Linux distros-maintained repositories tend to be outdated.
Answer #6:
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')
Answer #7:
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.