Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #75372

Re: Getting a list of all modules

Path csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <python.leojay@gmail.com>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.002
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'matches': 0.07; 'subject:Getting': 0.07; "'.'": 0.09; 'imported': 0.09; 'subject:modules': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'def': 0.12; "'':": 0.16; '(it': 0.16; '.py': 0.16; 'imported.': 0.16; 'modules.': 0.16; 'programmatic': 0.16; 'set()': 0.16; 'sys.path:': 0.16; 'to:addr:pearwood.info': 0.16; "to:name:steven d'aprano": 0.16; 'extensions': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'packages.': 0.19; 'import': 0.22; 'cc:addr:python.org': 0.22; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; 'header:In-Reply-To:1': 0.27; 'function': 0.29; "doesn't": 0.30; 'subject:list': 0.30; 'message- id:@mail.gmail.com': 0.30; "i'm": 0.30; 'url:mailman': 0.30; 'base,': 0.31; "d'aprano": 0.31; 'steven': 0.31; 'anyone': 0.31; 'file': 0.32; 'probably': 0.32; 'subject:all': 0.32; 'url:python': 0.33; 'could': 0.34; 'problem': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'ext': 0.36; 'url:listinfo': 0.36; 'url:org': 0.36; 'half': 0.37; 'wrong': 0.37; 'list': 0.37; 'skip:o 20': 0.38; 'system,': 0.38; 'handle': 0.38; 'files': 0.38; 'pm,': 0.38; 'does': 0.39; 'url:mail': 0.40; 'how': 0.40; 'skip:u 10': 0.60; 'issues,': 0.61; 'name': 0.63; 'zip': 0.64; '30,': 0.65; 'jul': 0.74; 'leo': 0.84
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=0fn/kH7I7Cxyn4mohcshzze0YebtsNEzDVCtTKJTZVY=; b=YzLfILzRhvtI0sdEpTP0D9+gQgBMNYCz9qDr1aT+kzLRRFojpBCPLWHIehNQADph+F 7Kul2MnVcFlFu67ZoQM0GL0D1cR/fMBZiFtkcdGN3dw+E/Jj0VBLZXEdfezpo2VILj0Y qgH9h0Uw7Gzd6Pzino/Z06uU6XDqwHTj6JMcAweRbNwgxST4L6llBaiCrMRvplkB434o OxEhHHUi9EHcTo8TjmJNqJQbkRv456czNEzQQHXMuDnfETmJV8y/BBxUMsEnuZ/8YvVl 8tjqE0HxCVWM1aHvzgwN/B1TVx7xG6mNn2zYcalR3i0Rlj3G0bQVoqMEIYQTO03Dz5/q KMEQ==
MIME-Version 1.0
X-Received by 10.52.244.81 with SMTP id xe17mr7792934vdc.24.1406726538638; Wed, 30 Jul 2014 06:22:18 -0700 (PDT)
In-Reply-To <53d8a20e$0$29977$c3e8da3$5496439d@news.astraweb.com>
References <53d8a20e$0$29977$c3e8da3$5496439d@news.astraweb.com>
Date Wed, 30 Jul 2014 21:22:18 +0800
Subject Re: Getting a list of all modules
From Leo Jay <python.leojay@gmail.com>
To "Steven D'Aprano" <steve@pearwood.info>
Content-Type text/plain; charset=UTF-8
Cc python-list@python.org
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.12436.1406726547.18130.python-list@python.org> (permalink)
Lines 46
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1406726547 news.xs4all.nl 2921 [2001:888:2000:d::a6]:42826
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:75372

Show key headers only | View raw


On Wed, Jul 30, 2014 at 3:43 PM, Steven D'Aprano <steve@pearwood.info> wrote:
> I'm looking for a programmatic way to get a list of all Python modules
> and packages. Not just those already imported, but all those which
> *could* be imported.
>

If you don't actually import it, how can you know it could be imported?
Not all .so files are valid python modules.
Not all .py files could be imported by all python interpreters.

> I have a quick-and-dirty function which half does the job:
>
>
> def get_modules():
>     extensions = ('.py', '.pyc', '.pyo', '.so', '.dll')
>     matches = set()
>     for location in sys.path:
>         if location == '': location = '.'
>         if os.path.isdir(location):
>             for name in os.listdir(location):
>                 base, ext = os.path.splitext(name)
>                 if ext in extensions:
>                     matches.add(base)
>     return sorted(matches)
>
>
>
> but I know it's wrong (it doesn't handle packages correctly, or zip
> files, doesn't follow .pth files, has a very naive understanding of cross-
> platform issues, fails to include built-in modules that don't live in the
> file system, and probably more).
>
> Is this problem already solved? Can anyone make any suggestions?
>
>
>
> --
> Steven
> --
> https://mail.python.org/mailman/listinfo/python-list



-- 
Best Regards,
Leo Jay

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Getting a list of all modules Steven D'Aprano <steve@pearwood.info> - 2014-07-30 07:43 +0000
  Re: Getting a list of all modules Chris Angelico <rosuav@gmail.com> - 2014-07-30 18:33 +1000
  Re: Getting a list of all modules Peter Otten <__peter__@web.de> - 2014-07-30 10:46 +0200
  Re: Getting a list of all modules Robert Kern <robert.kern@gmail.com> - 2014-07-30 11:35 +0100
  Re: Getting a list of all modules Leo Jay <python.leojay@gmail.com> - 2014-07-30 21:22 +0800
    Re: Getting a list of all modules Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-07-31 10:41 +0000
      Re: Getting a list of all modules Roy Smith <roy@panix.com> - 2014-07-31 07:55 -0400
        Re: Getting a list of all modules Chris Angelico <rosuav@gmail.com> - 2014-07-31 23:13 +1000
      Re: Getting a list of all modules Terry Reedy <tjreedy@udel.edu> - 2014-07-31 15:59 -0400
      Re: Getting a list of all modules Robert Kern <robert.kern@gmail.com> - 2014-08-01 14:39 +0100
        Re: Getting a list of all modules Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-08-01 15:41 +0000
          Re: Getting a list of all modules jonnicoll11@googlemail.com - 2014-08-02 14:13 -0700
            Re: Getting a list of all modules Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-02 22:22 +0100
          Re: Getting a list of all modules Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-08-03 14:38 +0100
  Re: Getting a list of all modules Chris Angelico <rosuav@gmail.com> - 2014-07-30 23:27 +1000
  Re: Getting a list of all modules wxjmfauth@gmail.com - 2014-07-30 06:42 -0700
  Re: Getting a list of all modules Ian Kelly <ian.g.kelly@gmail.com> - 2014-07-30 08:29 -0600
  Re: Getting a list of all modules Skip Montanaro <skip@pobox.com> - 2014-07-30 09:45 -0500
  Re: Getting a list of all modules Akira Li <4kir4.1i@gmail.com> - 2014-07-31 22:55 +0400
  Bug with help (was Re: Getting a list of all modules) Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-07-31 20:19 +0100
  Re: Bug with help (was Re: Getting a list of all modules) Terry Reedy <tjreedy@udel.edu> - 2014-07-31 16:15 -0400
  Re: Bug with help (was Re: Getting a list of all modules) Akira Li <4kir4.1i@gmail.com> - 2014-08-02 06:17 +0400
    Re: Bug with help (was Re: Getting a list of all modules) Heinz Schmitz <HeinzSchmitz@gmx.net> - 2014-08-02 10:33 +0200
      Re: Bug with help (was Re: Getting a list of all modules) Robert Kern <robert.kern@gmail.com> - 2014-08-02 13:13 +0100
      Re: Bug with help (was Re: Getting a list of all modules) Terry Reedy <tjreedy@udel.edu> - 2014-08-02 14:17 -0400

csiph-web