モジュール名からモジュールパスを取得する簡単な方法はありますか?私。私はpath/to/moduleをpath.to.moduleからpython 2.7で取得することをお勧めします。モジュール名からパスを取得する
私はモジュールをインポートするつもりはなく、私はモジュール名を文字列として持っています。
モジュール名からモジュールパスを取得する簡単な方法はありますか?私。私はpath/to/moduleをpath.to.moduleからpython 2.7で取得することをお勧めします。モジュール名からパスを取得する
私はモジュールをインポートするつもりはなく、私はモジュール名を文字列として持っています。
sys.modules['path.to.module'].__file__
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import collections
>>> import sys
>>> sys.modules['collections'].__file__
'/usr/lib/python2.7/collections.pyc'
>>>
とにかく現在の名前空間にモジュールをインポートする場合、 'sys.modules'を使うのはなぜですか?単に「コレクション」が行います。 –
@SvenMarnach、あなたは正しいですが、モジュールオブジェクトへの参照ではなく、モジュールパスを持っています – warvariuc
まあ、OPは、モジュールをまったくインポートするべきではないことを明らかにしていますので、 'sys.modules ['collections' __file__'や 'collections .__ file__'は役に立ちません。 –
path = path.to.module.__file__
これは、モジュールのインポート後に非常に簡単です:私のマシン上
import os
print os.__file__
プリント
/usr/lib/python2.7/os.pyc
を。モジュールをインポートする前にこのを行うには
、あなたがimp.find_module()
を使用することができます。
imp.find_module("os")[1]
はこのポスト/答えあなたの質問に対処していますか? http://stackoverflow.com/questions/247770/retrieving-python-module-path –
モジュールをインポートするつもりはありません。このようにポストは役に立たず、前に読んだことがある。 – joidegn