В системах * nix можно использовать which
, чтобы узнать полный путь к команде. Например:Python analog of Unix 'который'
$ 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'
ли он гарантировал, что каждый модуль имеет '__file__' атрибут? , например: ' >>> импорт SYS >>> SYS .__ FILE__ Traceback (самый последний вызов последнего): Файл "", строка 1, в AttributeError: 'модуль' объект не имеет атрибута ' __FILE__» >>> импорт ОС >>> ОС .__ FILE__ 'C: \\ Python25 \\ Lib \\ os.pyc' ' –
+1 Хотя это не похоже на работу для 'sys', как в примере OP –
Это не работает для 'sys', потому что' sys' не приходит из файла вообще: это встроенный модуль. Как таковой нет разумного ответа на 'which (sys)'. – bobince