2011-06-17 7 views
6

Si j'importer os module, je peux exécuter ce qui suit pour en déduire l'emplacement de os.pyPython: "posix import" question

>>> import os 
>>> print os.__file__ 
/usr/lib/python2.6/os.pyc 

Cependant, quand j'importer posix, il n'a pas l'attribut __file__ . Est-ce parce qu'il est implémenté dans le cadre de l'exécution de Python, pas comme une bibliothèque standard?

Comment puis-je trouver plus d'informations en utilisant uniquement la documentation officielle de python?

Répondre

6

C'est un module C. Il peut être intégré au binaire Python ou compilé en tant que bibliothèque partagée. Dans votre cas, il est compilé dans

Le official docs disent ne pas importer directement, et vous devez utiliser les fonctionnalités fournies par os

3

Exécutez interactivement python.

>>> import posix 
>>> help(posix) 

Il y a beaucoup de bonnes choses là-bas.

FILE 
    (built-in) 
+0

help() est absolument pratique! Apprenez quelque chose de nouveau aujourd'hui, merci! J'aimerais pouvoir accepter votre réponse aussi! –

1

Vous pouvez également utiliser le module « inspection » pour trouver des informations (par exemple le chemin du fichier source etc) à propos d'un module python. Par exemple:

import inspect 
import os 
inspect.getsourcefile(os) 
'/usr/local/lib/python2.7/os.py' 

inspect.getsourcefile(inspect) 
'/usr/local/lib/python2.7/inspect.py' 

import sys   
inspect.getsourcefile(sys) 
Traceback (most recent call last): 
[...] 
raise TypeError('{!r} is a built-in module'.format(object)) 
TypeError: <module 'sys' (built-in)> is a built-in module