В *отклоняют системы, которые можно использовать which
узнать полный путь к команде. Например:
$ which python
/usr/bin/python
или whereis
показать все возможные местоположения для данной команды
$ whereis python
python: /bin/python.exe /bin/python2.5-config /usr/bin/python.exe /usr/bin/python2.5-config /lib/python2.4 /lib/python2.5 /usr/lib/python2.4 /usr/lib/python2.5 /usr/include/python2.4 /usr/include/python2.5 /usr/share/man/man1/python.1
Есть ли простой способ узнать местоположение модуля в PYTHONPATH. Что-то как:
>>> which (sys)
'c:\\Python25\Lib\site-packages'
Если вы сделаете:
имя_модуля .__ файл __
Вы получите полный путь к этому модулю. Например, импорт django:
>>>> import django
>>> django.__file__
'/home/bartek/.virtualenvs/safetyville/lib/python2.6/site-packages/django/__init__.pyc'
Изменить: я рекомендую просмотреть комментарии ниже, если у вас еще не было возможности.
Это немного неуклюже, но вы можете набрать python pywhich os django PIL
:
import os, os.path
import sys
def pywhich(mod):
for p in sys.path:
try:
if any(p.startswith(mod + '.py') for p in os.listdir(p)):
return os.path.join(p, mod)
except OSError:
pass
return "Not found"
if __name__ == '__main__':
for arg in sys.argv[1:]:
print arg, pywhich(arg)