Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Unix whereis-like python script and package to find the source file of python object (package, module, function, class ...).

Project Description


Locate a python object (package, module, function, class …) source file.


pywhereis [-v] [-s] dotted_name...

CMD line Examples

  • The pywhereis script accept a package, module, function or a class

    $ pywhereis shlex
    shlex: /usr/lib/python2.7/
    $ pywhereis os.path.abspath
    os.path.abspath: /usr/lib/python2.7/  337
  • You can pass more than one dotted-name to it

    $ pywhereis shlex inspect.ismodule
    shlex: /usr/lib/python2.7/
    inspect.ismodule: /usr/lib/python2.7/  51
  • If the name is a function, class or method the result will contain the line number where the object is defined

    $ pywhereis unittest.TestCase.assertEqual
    unittest.TestCase.assertEqual: /usr/lib/python2.7/  344
  • It will fail localizing object that are not pure python

    $ sys
  • For more info about why the localization fail you can use the verbose mode

    $ pywhereis -v sys
    sys: Error: <module 'sys' (built-in)> is not pure python.
  • If it’s run with -s, –site-packages option the script will check first in site-packages instead of the default which is to check in the current dir first

    $ cd ~ ; touch
    $ pywhereis os
    os: /home/mouad/
    $ pywhereis -s os
    os: /usr/lib/python2.7/

    Note: Option only available for python3.2 and below !

  • For python2.7 and above you can also do

    $ python2.7 -mpywhereis subprocess.Popen
    subprocess.Popen: /usr/local/lib/python2.7/ 33

    Note: The above will only work if pywhereis was installed in that python version.

  • Of course you can still search in a different python version by running this script using that python

    $ python3.4 $(which pywhereis) html
    html: /usr/local/lib/python3.4/html/

Code Examples

This package come also with a python package whereis that can be used like so

>>> import whereis
>>> whereis.resolve('sys')
<module 'sys' (built-in)>
>>> whereis.locate('os')



  • Fixing bug _issue#2:, This mean that user can install pywhereis once in any Python version, and use it everywhere i.e. with other python versions or inside virtualenv … , This work for now with only POSIX compliant system.
  • BUGFIX: Fix locating not pure Python modules, bug noticed when trying to locate lxml.etree.XPath.
  • Add support to Python3.4 and Python3.3.
  • Change versioning instead of 0.0.2 now it’s 0.3.
  • Backward incompatibilty change: pywhereis return now the real path instead of symlink.


  • Add support to locating zip archive and eggs modules.
  • Add a new argument -s, –site-packages that enable looking in site-packages directory before current directory.
  • BUGFIX: Fix whereis.resolve to always raise ImportError even if the module that we are searching for is broken (SyntaxError …), the same with whereis.locate.


First release.

Release History

This version
History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(8.4 kB) Copy SHA256 Hash SHA256
Source None Jul 26, 2014

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers