22

インポートされたモジュールの絶対パスを取得するにはどうすればよいですか?

4

3 に答える 3

38

他の回答が言っているように、あなたはを使うことができます__file__。ただし、他のモジュールがプログラムと同じディレクトリにある場合、これはフルパスを提供しないことに注意してください。したがって、安全のために、次のようなことを行います。

>>> import os
>>> import math
>>> os.path.abspath(math.__file__)
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/math.so'

これは、abspath(現在のディレクトリにある)checkIPを取得する必要がある理由を説明するために呼び出されたモジュールの例です。checkIP.py

>>> import os
>>> import checkIP
>>> os.path.abspath(checkIP.__file__)
'/Users/Matthew/Programs/checkIP.py'
>>> checkIP.__file__
'checkIP.py'
于 2012-09-02T06:23:55.213 に答える
8

それが PYTHONPATH ディレクトリ ツリー内のモジュールである場合 (および__init__.pyそのディレクトリと親ディレクトリに a を配置することでアクセスできる場合)、そのpath属性を呼び出します。

>>>import sample_module
>>>sample_module.__path__
['/absolute/path/to/sample/module']
于 2016-03-07T19:24:19.983 に答える
3

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

import os
print os.__file__

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

于 2012-09-02T06:20:55.300 に答える