在python中,如何判断导入的库来自哪个目录?

2024-04-24 08:42:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试修改我下载并正在使用的python库。但我所做的改变什么也没做。所以我怀疑python是从文件系统的其他地方导入这个库的另一个副本。所以。。。在

当我在python中运行import foolib时,我如何知道它从文件系统的何处获取该库?在


Tags: import地方副本foolib
3条回答

看看foolib.__file__。在

正确的答案是使用sys.modules。。。它对任何东西都有效,甚至syssys.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'>
import foolib
print foolib.__file__

不幸的是,这只适用于某些模块。E、 它适用于我编写的模块,但不适用于sys。在

相关问题 更多 >