Reputation: 17006
I have recently started learning Python and I have 2 questions relating to modules.
Upvotes: 193
Views: 622952
Reputation: 2922
On a 2023 Windows machine with Python 3.8 or later installed with defaults:
Press the Windows key, paste or type the following and press enter
explorer %LOCALAPPDATA%\Programs\Python
This opens %LOCALAPPDATA%\Programs\Python
which contains directories named per the various versions of Python installed (perhaps, in the past), and their respective installed packages.
Upvotes: 1
Reputation: 19836
sys.meta_path
is another source of modules, in addition to sys.path
. It contains info that help('module')
doesn't.
meta_path
can explain unexpected import behaviors - if a module isn't on sys.path
, it doesn't guarantee it won't be imported. Moreover, if a package is on sys.path
, but a package with same name but different directory is in sys.meta_path
, Python will import from both, prioritizing sys.path
. This can be troublesome if you've intentionally removed something from the package in sys.path
- Python will keep importing it from sys.meta_path
. This includes certain non-Python files, like Cython's .pyx
builds.
Upvotes: 0
Reputation: 224
Run python CLI for info
python -c "import sys; print('\n'.join(sys.path))"
Upvotes: 8
Reputation: 3350
On my local machine (Win 10), it has the following path:
c:\Users\administrator\AppData\Roaming\Python\Python38\
Upvotes: 0
Reputation: 9630
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
Upvotes: 0
Reputation: 584
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
.
Upvotes: 42
Reputation: 17923
- 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.
Upvotes: 175
Reputation: 209
On Windows machine python modules are located at (system drive and python version may vary):
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib
Upvotes: 20
Reputation: 2975
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')
Upvotes: 2
Reputation: 161
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
Upvotes: 13
Reputation: 1774
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
Upvotes: 156
Reputation: 119
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.
Upvotes: 2
Reputation: 129994
sys.path
to find all modules (except builtin ones)./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.Upvotes: 5