1
导入模块时,我对优先级感到困惑,我该如何改变它。导入优先级一致性?
当前目录中确实含有:
l10n/__init__.py
l10n/moneyfmt.py
另一个目录(不同的,那么电流)与一个额外的包中包含:
/opt/l10n/__init__.py
/opt/l10n/utils.py
现在运行Python解释:
>>> import sys
>>> sys.path
['', '/usr/lib/python27.zip', '/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/PIL',
'/usr/lib/python2.7/site-packages/gtk-2.0',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info']
>>> import l10n.utils
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named utils # CORRECT, NOT IN PATH YET
>>> sys.path.insert(0, '/opt')
>>> sys.path
['/opt', '', '/usr/lib/python27.zip', '/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/PIL',
'/usr/lib/python2.7/site-packages/gtk-2.0',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info']
>>> import l10n.utils
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named utils # WHY IT CAN NOT FIND THE MODULE?
为什么在我完成了全部拍摄之后,找不到包含l10n.utils模块的软件包h到sys.path中的搜索路径?当前目录总是在此优先吗?它可以改变吗?
哇,如果我省略了第一次导入尝试,它会正确加载'l10n.utils'模块!是否有一些关于进口缓存的文档?它能稍后被清除吗? – 2013-03-02 19:33:22
@DavidUnric:有,请参阅http://docs.python.org/2/reference/simple_stmts.html#the-import-statement和http://docs.python.org/2/library/sys.html# sys.modules – NPE 2013-03-02 19:34:43
感谢您的及时答复。仍然觉得它有点令人惊讶的行为。 – 2013-03-02 19:37:47