Как я могу сказать, из какого каталога импортированная библиотека происходит в Python?

Я пытаюсь изменить библиотеку Python, которую я загрузил и использую. Но изменения, которые я вношу, ничего не делают. Таким образом, я подозреваю, что Python импортирует другую копию этой библиотеки от где-то в другом месте в файловой системе. Так...

Когда я работаю import foolib в Python, как я могу сказать, где в файловой системе это получает ту библиотеку от?

5
задан muudscope 15 April 2010 в 18:11
поделиться

3 ответа

import foolib
print foolib.__file__

К сожалению, это работает только для некоторых модулей. Например. он работает с написанным мной модулем, но не работает с sys .

6
ответ дан 18 December 2019 в 11:54
поделиться

правильный ответ - использовать sys.modules ... он работает на всем , даже sys . sys.modules - это словарь, где ключи - это импортированные имена (модули или пакеты), а значения - их соответствующие местоположения. вот некоторые результаты использования моего Mac:

$ python
Python 2.5.1 (r251:54863, Feb  9 2009, 18:49:36) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, os, django, google
>>> sys.modules['sys']
<module 'sys' (built-in)>
>>> sys.modules['os']
<module 'os' from '/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.pyc'>
>>> sys.modules['django']
<module 'django' from '/Library/Python/2.5/site-packages/Django-1.1.1-py2.5.egg/django/__init__.pyc'>
>>> sys.modules['google']
<module 'google' from '/usr/local/google_appengine/google/__init__.py'>
7
ответ дан 18 December 2019 в 11:54
поделиться

Посмотрите на файл foolib .__ __ .

2
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: