dev 환경에서 작업하려고하지만 python이 site-packages 디렉토리의 모듈을 사용하고있는 것으로 보이는 문제를 발견했습니다. 내 dev 디렉토리에서 모듈을 사용하고 싶다.파이썬 모듈 검색 경로 문제
의 sys.path이, 그것은 조회의 첫 번째 장소로 현재 디렉토리를 사용하고 좋은이
['', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages' etc
처럼, DIRS의 무리를 반환 (적어도 이것은 내가 그것으로 이해하는 방법이다).
이제는 현재 디렉토리에 command.py라는 파일을 작성하면 예상대로 작동합니다.
>>> import commands
>>> commands.__file__
'commands.pyc'
그런 다음 파이썬 쉘 밖으로 나와 다른 것을 시작하십시오. 나는 이것을한다.
>>> import foo.bar.commands
이제 내가 할 것으로 예상하고있어 어떤 것은 ./foo/bar/ 거기에서 나에게 명령 모듈을 얻기 위해 현재 디렉토리에서 아래로 이동합니다. 내가 생각 얻을 것은이 내 현재 디렉토리에서이 비록
>>> foo.bar.commands.__file__
'/usr/lib/python2.6/site-packages/foo/bar/commands.pyc'
imp.find_module()와 imp.load_module를 사용
./foo/bar/commands.py 것은() 나는로드 할 수있다 로컬 모듈을 올바르게 설치하십시오. 세드릭 (난 정말 무슨 뜻인지 모르겠지만) 실제로 흥미가 로컬 디렉토리에서/초기화 .pyc 파일을 푸를 찾을 수 있다면
>>> import foo.bar.commands
>>> foo.bar.commands.__file__
'/usr/lib/python2.6/site-packages/foo/bar/commands.pyc'
>>> foo.bar.__file__
'/usr/lib/python2.6/site-packages/foo/bar/__int__.pyc'
>>> foo.__file__
'./foo/__init__.pyc'
따라서이 시퀀스에서 인쇄 된 마지막 줄이 로컬 디렉토리에서 다른 파일을 찾을 수없는 이유는 무엇입니까?
건배
하위 디렉토리에 __inits__.py가 있습니까? –