2012-09-02 16 views
8

他の場所にインポートできるモジュールの絶対パスを取得する方法は?Python:インポートされたモジュールの絶対パスを見つける

+0

ファイルへのファイルシステムパスまたはPythonモジュールパスを意味しますか? – Keith

+0

@Keithファイルシステム。 – Determinant

+0

誰かが 'function_name .__ code__'関数を使ってこれを行うことを望んでいる場合は、完全なファイルパスを得るのにうまくいきます。 – KBoehme

答えて

24

その他の回答によると、__file__を使用できます。ただし、他のモジュールがプログラムと同じディレクトリにある場合、これは完全なパスを与えません。

>>> import os 
>>> import checkIP 
>>> os.path.abspath(checkIP.__file__) 
'/Users/Matthew/Programs/checkIP.py' 
>>> checkIP.__file__ 
'checkIP.py' 
:あなたはABSPATHを( checkIP.pyが現在のディレクトリにある)を取得する必要がある理由はここに
>>> import os 
>>> import math 
>>> os.path.abspath(math.__file__) 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/math.so' 

を説明するために checkIPと呼ばれる私が作ったモジュールを搭載した例を示しますので、このような何かを、安全のために
1

あなたは試すことができます:

import os 
print os.__file__ 

をモジュールが配置されている場所を確認します。

1

PYTHONPATHディレクトリツリー内のモジュールであり(ディレクトリと親ディレクトリに__init__.pyを配置してアクセス可能な場合)、のパス属性を呼び出します。

>>>import sample_module 
>>>sample_module.__path__ 
['/absolute/path/to/sample/module'] 
関連する問題