Frage

Ich möchte eine Liste von Python-Modulen erhalten, die in meinem Python-Installation (UNIX-Server) sind.

Wie kann man eine Liste von Python-Modulen auf Ihrem Computer installiert werden?

War es hilfreich?

Lösung

Lösung

Verwenden Sie nicht mit pip> 10.0

Mein 50 Cent für eine pip freeze artige Liste von einem Python-Skript bekommen:

import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])
print(installed_packages_list)

Als (zu lange) Motto:

sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])

Giving:

['behave==1.2.4', 'enum34==1.0', 'flask==0.10.1', 'itsdangerous==0.24', 
 'jinja2==2.7.2', 'jsonschema==2.3.0', 'markupsafe==0.23', 'nose==1.3.3', 
 'parse-type==0.3.4', 'parse==1.6.4', 'prettytable==0.7.2', 'requests==2.3.0',
 'six==1.6.1', 'vioozer-metadata==0.1', 'vioozer-users-server==0.1', 
 'werkzeug==0.9.4']

Anwendungsbereich

gilt diese Lösung auf das System Umfang oder in einen virtuellen Umgebung Umfang und deckt installierten Pakete von setuptools, pip und ( Gott bewahre ) easy_install.

My Use Case

Ich habe das Ergebnis dieses Aufrufs zu meinen Kolben-Server, so dass, wenn ich es mit http://example.com/exampleServer/environment nennen erhalte ich die Liste der auf dem Server des virtualenv installierten Pakete. Es macht das Debuggen sehr viel einfacher.

Caveats

Ich habe ein seltsames Verhalten dieser Technik bemerkt - wenn das Python-Interpreter in demselben Verzeichnis als setup.py-Datei aufgerufen wird, ist es nicht das Paket durch setup.py installiert auflistet

.

Schritte zum Reproduzieren:

Erstellen einer virtuellen Umgebung
$ cd /tmp
$ virtualenv test_env
New python executable in test_env/bin/python
Installing setuptools, pip...done.
$ source test_env/bin/activate
(test_env) $ 
Klonen einer git Repo mit setup.py
(test_env) $ git clone https://github.com/behave/behave.git
Cloning into 'behave'...
remote: Reusing existing pack: 4350, done.
remote: Total 4350 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4350/4350), 1.85 MiB | 418.00 KiB/s, done.
Resolving deltas: 100% (2388/2388), done.
Checking connectivity... done.

Wir haben behave des setup.py in /tmp/behave:

(test_env) $ ls /tmp/behave/setup.py
/tmp/behave/setup.py
Installieren Sie das Python-Paket aus dem git Repo
(test_env) $ cd /tmp/behave && pip install . 
running install
...
Installed /private/tmp/test_env/lib/python2.7/site-packages/enum34-1.0-py2.7.egg
Finished processing dependencies for behave==1.2.5a1

Wenn wir die oben genannte Lösung von /tmp ausführen

>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['behave==1.2.5a1', 'enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp'

Wenn wir die oben genannte Lösung von /tmp/behave ausführen

>>> import pip
>>> sorted(["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions()])
['enum34==1.0', 'parse-type==0.3.4', 'parse==1.6.4', 'six==1.6.1']
>>> import os
>>> os.getcwd()
'/private/tmp/behave'

behave==1.2.5a1 aus dem zweiten Beispiel fehlt, weil das Arbeitsverzeichnis behave die setup.py-Datei enthält.

Ich konnte keinen Hinweis auf dieses Problem in der Dokumentation. Vielleicht werde ich für sie einen Fehler öffnen.

Andere Tipps

help('modules')

in einer Python Shell / prompt.

Nun, diese Methoden, die ich versuchte, mich, und ich bekam genau das, was beworben wurde: Alle Module

.

Ach, wirklich interessieren Sie nicht viel über die stdlib, wissen Sie, was Sie mit einem Python-get install.

Wirklich, möchte ich die Sachen, die I installiert.

Was ist eigentlich überraschend, funktionierte gut war:

pip freeze

Welche zurückgegeben:

Fabric==0.9.3
apache-libcloud==0.4.0
bzr==2.3b4
distribute==0.6.14
docutils==0.7
greenlet==0.3.1
ipython==0.10.1
iterpipes==0.4
libxml2-python==2.6.21

Ich sage „überraschend“, weil das Paket Tool installieren ist die genaue Stelle man erwarten würde, um diese Funktionalität zu finden, wenn auch nicht unter dem Namen ‚einzufrieren‘, aber Python Verpackung so seltsam ist, dass ich baff bin, dass dieses Werkzeug sinnvoll ist. Pip 0.8.2, Python 2.7.

  • In ipython können Sie "import Tab ".

  • eingeben
  • In den Standard-Python-Interpreter können Sie "help('modules')".

  • An der Befehlszeile können Sie verwenden pydoc modules.

  • In einem Skript aufrufen pkgutil.iter_modules() .

Seit pip Version 1.3, Sie haben Zugang zu bekommen:

pip list

Welche scheint für „pip freeze“ syntaktischer Zucker zu sein. Es wird alle Module insbesondere für die Installation oder virtualenv, zusammen mit ihren Versionsnummern auflisten. Leider ist es nicht die aktuelle Versionsnummer eines beliebigen Moduls angezeigt werden, auch nicht Ihr Geschirr waschen oder Ihre Schuhe glänzen.

ich diese nur verwenden derzeit verwendeten Module zu sehen:

import sys as s
s.modules.keys()

, die alle Module zeigt auf Python ausgeführt wird.

Für alle Einbaumodule verwenden:

s.modules

Welche ist ein dict alle Module und Import-Objekte enthalten.

Im normal Shell nur verwenden

pydoc modules

Ab pip 10 wird die akzeptierte Antwort nicht mehr. Das Entwicklungsteam hat Zugriff auf die get_installed_distributions Routine entfernt. Es ist eine alternative Funktion im setuptools für das gleiche tun. Hier ist eine alternative Version, die funktioniert mit Pip 10:

import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
     for i in installed_packages])
print(installed_packages_list)

Bitte lassen Sie mich wissen, ob es will oder nicht in früheren Versionen von pip auch funktionieren.

Wenn wir die installierten Pakete in der Python-Shell zur Liste benötigen, können wir den help Befehl wie folgt

>>help('modules package')

ich normalerweise verwenden pip list eine Liste von Paketen zu bekommen (mit Version).

Dies funktioniert in einer virtuellen Umgebung natürlich auch. Um zu zeigen, was nur installiert ist in der virtuellen Umgebung (nicht globale Pakete) verwendet pip list --local.

Hier Dokumentation alle verfügbaren pip list Optionen zeigt, mit mehreren guten Beispiele .

Sehr einfache Suche mit pkgutil.iter_modules

from pkgutil import iter_modules
a=iter_modules()
while True:
    try: x=a.next()
    except: break
    if 'searchstr' in x[1]: print x[1]

Ich lief in einen benutzerdefinierten installierten Python 2.7 auf OS X. Es benötigte X11 Module zur Liste installiert (beide mit Hilfe und pydoc).

Um in der Lage sein, alle Module aufzulisten, ohne die Installation X11 Ich lief pydoc als http-Server, das heißt:.

pydoc -p 12345

Dann ist es möglich, Safari zu richten an http://localhost:12345/ alle Module zu sehen.

auf Windows, geben Sie diese in cmd

c:\python\libs>python -m pip freeze

Dies wurde von Adam Matan beantworten (die akzeptierten eins):

import tabulate
try:
  from pip import get_installed_distributions
except:
  from pip._internal.utils.misc import get_installed_distributions

tabpackages = []
for _, package in sorted([('%s %s' % (i.location, i.key), i) for i in get_installed_distributions()]):
  tabpackages.append([package.location, package.key, package.version])

print(tabulate.tabulate(tabpackages))

, die dann druckt eine Tabelle in Form von

19:33 pi@rpi-v3 [iot-wifi-2] ~/python$ python installed_packages.py
-------------------------------------------  --------------  ------
/home/pi/.local/lib/python2.7/site-packages  enum-compat     0.0.2
/home/pi/.local/lib/python2.7/site-packages  enum34          1.1.6
/home/pi/.local/lib/python2.7/site-packages  pexpect         4.2.1
/home/pi/.local/lib/python2.7/site-packages  ptyprocess      0.5.2
/home/pi/.local/lib/python2.7/site-packages  pygatt          3.2.0
/home/pi/.local/lib/python2.7/site-packages  pyserial        3.4
/usr/local/lib/python2.7/dist-packages       bluepy          1.1.1
/usr/local/lib/python2.7/dist-packages       click           6.7
/usr/local/lib/python2.7/dist-packages       click-datetime  0.2
/usr/local/lib/python2.7/dist-packages       construct       2.8.21
/usr/local/lib/python2.7/dist-packages       pyaudio         0.2.11
/usr/local/lib/python2.7/dist-packages       tabulate        0.8.2
-------------------------------------------  --------------  ------

, die Sie dann leicht erkennen lässt, welche Pakete mit und ohne sudo installiert.


Ein Hinweis beiseite: Ich habe bemerkt, dass, wenn ich ein Paket einmal über sudo installieren und einmal ohne, ein Vorrang hat, so dass der andere nicht aufgeführt werden (nur an einer Stelle gezeigt). Ich glaube, dass nur derjenige im lokalen Verzeichnis wird dann aufgeführt. Dies könnte verbessert werden.

Neben pip freeze Verwendung Ich habe die Installation von Dotter in meinen virtuellen Umgebungen.

  1. alle verfügbaren Module zu erhalten, führen sys.modules
  2. , um alle installiert Module (sprich: von pip installiert ist), können Sie bei pip.get_installed_distributions() aussehen

Für den zweiten Zweck, Beispielcode:

import pip
for package in pip.get_installed_distributions():
    name = package.project_name # SQLAlchemy, Django, Flask-OAuthlib
    key = package.key # sqlalchemy, django, flask-oauthlib
    module_name = package._get_metadata("top_level.txt") # sqlalchemy, django, flask_oauthlib
    location = package.location # virtualenv lib directory etc.
    version = package.version # version number

Diese Lösung ist primär basierend auf Modulen importlib und pkgutil und Arbeit mit CPython 3.4 und CPython 3.5, aber keine Unterstützung für die CPython 2 hat.


Erklärung

  1. sys.builtin_module_names - Namen alle eingebauten Modulen (schauen meine Antwort hier )
  2. pkgutil.iter_modules() - liefert eine Information über alle verfügbaren Module
  3. importlib.util.find_spec() - liefert eine Information über Modul importieren, falls vorhanden
  4. BuiltinImporter - ein Importeur für integrierte Module ( docs )
  5. SourceFileLoader - ein Importeur für einen Standard-Python-Modul (Standard hat Erweiterung * Py) ( docs )
  6. ExtensionFileLoader - ein Importeur für Module wie Shared Library ( geschrieben auf der C oder C ++)

Voll Code

import sys
import os
import shutil
import pkgutil
import importlib
import collections

if sys.version_info.major == 2:
    raise NotImplementedError('CPython 2 is not supported yet')


def main():

    # name this file (module)
    this_module_name = os.path.basename(__file__).rsplit('.')[0]

    # dict for loaders with their modules
    loaders = collections.OrderedDict()

    # names`s of build-in modules
    for module_name in sys.builtin_module_names:

        # find an information about a module by name
        module = importlib.util.find_spec(module_name)

        # add a key about a loader in the dict, if not exists yet
        if module.loader not in loaders:
            loaders[module.loader] = []

        # add a name and a location about imported module in the dict
        loaders[module.loader].append((module.name, module.origin))

    # all available non-build-in modules
    for module_name in pkgutil.iter_modules():

        # ignore this module
        if this_module_name == module_name[1]:
            continue

        # find an information about a module by name
        module = importlib.util.find_spec(module_name[1])

        # add a key about a loader in the dict, if not exists yet
        loader = type(module.loader)
        if loader not in loaders:
            loaders[loader] = []

        # add a name and a location about imported module in the dict
        loaders[loader].append((module.name, module.origin))

    # pretty print
    line = '-' * shutil.get_terminal_size().columns
    for loader, modules in loaders.items():
        print('{0}\n{1}: {2}\n{0}'.format(line, len(modules), loader))
        for module in modules:
            print('{0:30} | {1}'.format(module[0], module[1]))


if __name__ == '__main__':
    main()

Verwendung

Für die CPython3.5 (abgeschnitten)

$ python3.5 python_modules_info.py 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
30: <class '_frozen_importlib.BuiltinImporter'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_ast                           | built-in
_codecs                        | built-in
_collections                   | built-in
_functools                     | built-in
_imp                           | None
_io                            | built-in
_locale                        | built-in
_operator                      | built-in
_signal                        | built-in
_sre                           | built-in
_stat                          | built-in
_string                        | built-in
_symtable                      | built-in
_thread                        | built-in
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
227: <class '_frozen_importlib_external.SourceFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__future__                     | /usr/local/lib/python3.5/__future__.py
_bootlocale                    | /usr/local/lib/python3.5/_bootlocale.py
_collections_abc               | /usr/local/lib/python3.5/_collections_abc.py
_compat_pickle                 | /usr/local/lib/python3.5/_compat_pickle.py
_compression                   | /usr/local/lib/python3.5/_compression.py
_dummy_thread                  | /usr/local/lib/python3.5/_dummy_thread.py
_markupbase                    | /usr/local/lib/python3.5/_markupbase.py
_osx_support                   | /usr/local/lib/python3.5/_osx_support.py
_pydecimal                     | /usr/local/lib/python3.5/_pydecimal.py
_pyio                          | /usr/local/lib/python3.5/_pyio.py
_sitebuiltins                  | /usr/local/lib/python3.5/_sitebuiltins.py
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
64: <class '_frozen_importlib_external.ExtensionFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_bisect                        | /usr/local/lib/python3.5/lib-dynload/_bisect.cpython-35m-x86_64-linux-gnu.so
_bz2                           | /usr/local/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
_codecs_cn                     | /usr/local/lib/python3.5/lib-dynload/_codecs_cn.cpython-35m-x86_64-linux-gnu.so
_codecs_hk                     | /usr/local/lib/python3.5/lib-dynload/_codecs_hk.cpython-35m-x86_64-linux-gnu.so
_codecs_iso2022                | /usr/local/lib/python3.5/lib-dynload/_codecs_iso2022.cpython-35m-x86_64-linux-gnu.so
(****************************truncated*******************************)

Für die CPython3.4 (abgeschnitten)

$ python3.4 python_modules_info.py
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
54: <class '_frozen_importlib.BuiltinImporter'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_ast                           | built-in
_bisect                        | built-in
_codecs                        | built-in
_collections                   | built-in
_datetime                      | built-in
_elementtree                   | built-in
_functools                     | built-in
_heapq                         | built-in
_imp                           | None
_io                            | built-in
_locale                        | built-in
_md5                           | built-in
_operator                      | built-in
_pickle                        | built-in
_posixsubprocess               | built-in
_random                        | built-in
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
246: <class '_frozen_importlib.SourceFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__future__                     | /usr/lib/python3.4/__future__.py
_bootlocale                    | /usr/lib/python3.4/_bootlocale.py
_collections_abc               | /usr/lib/python3.4/_collections_abc.py
_compat_pickle                 | /usr/lib/python3.4/_compat_pickle.py
_dummy_thread                  | /usr/lib/python3.4/_dummy_thread.py
_markupbase                    | /usr/lib/python3.4/_markupbase.py
_osx_support                   | /usr/lib/python3.4/_osx_support.py
_pyio                          | /usr/lib/python3.4/_pyio.py
(****************************truncated*******************************)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
44: <class '_frozen_importlib.ExtensionFileLoader'>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_bz2                           | /usr/lib/python3.4/lib-dynload/_bz2.cpython-34m-x86_64-linux-gnu.so
_codecs_cn                     | /usr/lib/python3.4/lib-dynload/_codecs_cn.cpython-34m-x86_64-linux-gnu.so
_codecs_hk                     | /usr/lib/python3.4/lib-dynload/_codecs_hk.cpython-34m-x86_64-linux-gnu.so
_codecs_iso2022                | /usr/lib/python3.4/lib-dynload/_codecs_iso2022.cpython-34m-x86_64-linux-gnu.so
_codecs_jp                     | /usr/lib/python3.4/lib-dynload/_codecs_jp.cpython-34m-x86_64-linux-gnu.so
_codecs_kr                     | /usr/lib/python3.4/lib-dynload/_codecs_kr.cpython-34m-x86_64-linux-gnu.so
_codecs_tw                     | /usr/lib/python3.4/lib-dynload/_codecs_tw.cpython-34m-x86_64-linux-gnu.so
_crypt                         | /usr/lib/python3.4/lib-dynload/_crypt.cpython-34m-x86_64-linux-gnu.so
(****************************truncated*******************************)

Falls Sie haben ein anaconda Python-Distribution installiert , können Sie auch verwenden

$conda list

zusätzlich zu oben beschriebenen Lösungen.

pip freeze hat es alle Erkenntnis Pakete jedoch kann man einfach den folgenden Befehl schreiben alle Pfade aufzuzählen, in denen Python-Pakete sind.

>>> import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

Es gibt viele Ideen, zunächst ich auf diesen beiden am Grübeln:

pip

  

Nachteile: nicht immer installiert

Hilfe ( 'Module')

  

Nachteile: auf der Konsole; mit gebrochenem Module (siehe ubuntu ...) kann segfault

Ich brauche einen einfachen Ansatz, Basisbibliotheken und kompatibel mit altem Python 2.x mit

Und ich sehe das Licht: listmodules.py

Versteckt in dem Dokumentation Quellverzeichnis in 2.5 ist ein kleines Skript, das alle verfügbaren Module für eine Python-Installation auflistet.

Vorteile:

  

verwendet nur imp, sys, os, re, Zeit

     

entwickelt, um auf Python 1.5.2 und neuere ausführen

     

Der Quellcode ist wirklich kompakt, so dass Sie leicht mit ihm, zum Beispiel Bastelei können eine Ausnahmeliste von Buggy-Module passieren (nicht versuchen, sie zu importieren)

Es gibt viele Wege, die Haut eine Katze.

  • Der einfachste Weg ist es, die pydoc Funktion direkt aus der Schale verwenden mit:
    pydoc modules

  • Für mehr Informationen das Tool pip-date , die auch sagen, Sie die Installationsdaten.
    pip install pip-date


Versuchen Sie diese

pip list

oder

pip freeze

Ich brauchte die spezifische Version von Paketen standardmäßig in AWS Lambda zu finden. Ich tat es mit einem Mashup von Ideen auf dieser Seite. Ich bin es für die Nachwelt zu teilen.

import pkgutil

__version__ = '0.1.1'

def get_ver(name):
    try:
        return str(__import__(name).__version__)
    except:
        return None

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': [{
                   'path': m.module_finder.path,
                   'name': m.name,
                   'version': get_ver(m.name),
                 } for m in list(pkgutil.iter_modules())
                 #if m.module_finder.path == "/var/runtime" # Uncomment this if you only care about a certain path
                ],
    }

Was ich entdecken, ist, dass die zur Verfügung gestellt boto3 Bibliothek Art und Weise veraltet war und es war nicht meine Schuld, dass mein Code versagt. Ich brauche nur boto3 und botocore zu meinem Projekt hinzuzufügen. Aber ohne diese hätte ich schon meinen Kopf schlug meinen Code zu denken war schlecht.

{
  "statusCode": 200,
  "body": [
    {
      "path": "/var/task",
      "name": "lambda_function",
      "version": "0.1.1"
    },
    {
      "path": "/var/runtime",
      "name": "bootstrap",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "boto3",
      "version": "1.9.42"
    },
    {
      "path": "/var/runtime",
      "name": "botocore",
      "version": "1.12.42"
    },
    {
      "path": "/var/runtime",
      "name": "dateutil",
      "version": "2.7.5"
    },
    {
      "path": "/var/runtime",
      "name": "docutils",
      "version": "0.14"
    },
    {
      "path": "/var/runtime",
      "name": "jmespath",
      "version": "0.9.3"
    },
    {
      "path": "/var/runtime",
      "name": "lambda_runtime_client",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "lambda_runtime_exception",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "lambda_runtime_marshaller",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "s3transfer",
      "version": "0.1.13"
    },
    {
      "path": "/var/runtime",
      "name": "six",
      "version": "1.11.0"
    },
    {
      "path": "/var/runtime",
      "name": "test_bootstrap",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "test_lambda_runtime_client",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "test_lambda_runtime_marshaller",
      "version": null
    },
    {
      "path": "/var/runtime",
      "name": "urllib3",
      "version": "1.24.1"
    },
    {
      "path": "/var/lang/lib/python3.7",
      "name": "__future__",
      "version": null
    },
...

Was entdeckte ich war auch verschieden von , was sie offiziell veröffentlichen . Zum Zeitpunkt des Schreibens dieser:

  
      
  • Betriebssystem - Amazon Linux
  •   
  • AMI - AMZN-ami-HVM-2017.03.1.20170812-x86_64-gp2
  •   
  • Linux-Kernel - 4.14.77-70.59.amzn1.x86_64
  •   
  • AWS SDK für JavaScript - 2.290.0 \
  •   
  • SDK für Python (Boto 3) - 3-1.7.74 botocore-1.10.74
  •   

Für alle Fragen, wie pip list aus einem Python-Programm rufen Sie die folgende verwenden:

import pip
pip.main(['list])  # this will print all the packages

Dies wird helfen,

Im Terminal oder IPython ein:

help('modules')

und

In [1]: import                      #import press-TAB
Display all 631 possibilities? (y or n)
ANSI                   audiodev               markupbase
AptUrl                 audioop                markupsafe
ArgImagePlugin         avahi                  marshal
BaseHTTPServer         axi                    math
Bastion                base64                 md5
BdfFontFile            bdb                    mhlib
BmpImagePlugin         binascii               mimetools
BufrStubImagePlugin    binhex                 mimetypes
CDDB                   bisect                 mimify
CDROM                  bonobo                 mmap
CGIHTTPServer          brlapi                 mmkeys
Canvas                 bsddb                  modulefinder
CommandNotFound        butterfly              multifile
ConfigParser           bz2                    multiprocessing
ContainerIO            cPickle                musicbrainz2
Cookie                 cProfile               mutagen
Crypto                 cStringIO              mutex
CurImagePlugin         cairo                  mx
DLFCN                  calendar               netrc
DcxImagePlugin         cdrom                  new
Dialog                 cgi                    nis
DiscID                 cgitb                  nntplib
DistUpgrade            checkbox               ntpath

Von der Shell

ls site-packages

Wenn das nicht hilfreich ist, können Sie dies tun.

import sys
import os
for p in sys.path:
    print os.listdir( p )

Und sehen, was das produziert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top