1
모듈을 가져올 때 우선 순위가 혼란스럽고이를 어떻게 바꿀 수 있습니까? 추가 패키지가져 오기 우선 순위 일관성?
l10n/__init__.py
l10n/moneyfmt.py
다른 디렉토리를 (다른 후 현재)를 포함 않습니다 :
/opt/l10n/__init__.py
/opt/l10n/utils.py
이제 실행 파이썬 대화 형 인터프리터 :
>>> 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?
현재 디렉토리가 포함되어 있습니까 전체 팻치를 prepend 한 후에 l10n.utils 모듈로 패키지를 찾을 수없는 이유는 무엇입니까? h를 sys.path의 검색 경로에? 현재 디렉토리 이 항상이 우선입니까? 그것을 바꿀 수 있습니까?
와우, 첫 번째 가져 오기 시도를 생략하면 제대로'l10n.utils' 모듈이로드됩니다! 가져 오기에 대한 캐싱과 관련된 설명서가 있습니까? 나중에 어떻게 든 지울 수 있습니까? –
@DavidUnric : http://docs.python.org/2/reference/simple_stmts.html#the-import-statement 및 http://docs.python.org/2/library/sys.html#을 참조하십시오. sys.modules – NPE
신속한 답변을 보내 주셔서 감사합니다. 아직도 조금 놀랄만 한 행동을 찾으십시오. –