2017-12-07 33 views
0

아래에 표시된 컨텍스트에서 가져 오기 오류를 제거하기 위해 'nav'모듈을 가져 오지 않으려면 어떻게해야합니까?응용 프로그램 폴더/파일 탐색을 활성화하려는 Python - 가져 오기 오류 'nav'모듈이 없습니다

패키지 (디렉토리) 및 모듈 (파일) 응용 프로그램의 구조 :

root\code\ 
    __init__.py 
    nav.py 
    resource.txt 

root\code\mkts\goog\ 
    __init__.py 
    update_goog.py 

root\code\mkts\yhoo\ 
    __init__.py 
    update_yhoo.py 

root\mkts\goog\data\ 
    DJIA.csv 

root\mkts\yhoo\data\ 
    DJIA.csv 

root\mkts\goog\human\ 
    DJIA.txt 

root\mkts\yhoo\human\ 
    DJIA.txt 

Nav.py (일부 관련 코드)

import os 

this_path = os.path.abspath(__file__) 
code = os.path.split(this_path)[0] # DO NOT put os.sep here! 
root = os.path.split(code)[0] + os.sep 
code = os.path.join(root,'code' + os.sep) 

mkts = os.path.join(root,'mkts' + os.sep) 

mkts_goog = os.path.join(mkts,'goog' + os.sep) 
mkts_goog_data = os.path.join(mkts_goog,'data' + os.sep) 
mkts_goog_human = os.path.join(mkts_goog,'human' + os.sep) 

if __name__ == '__main__': 
    # print(test()) 

update_goog.py (관련 수입 테스트 코드)

import nav 

print(nav.mkts_goog_data) 

"python update_goog.py"를 실행할 때 커맨드 라인 디렉토리 root \ mkts \ goog \ data \의 프린트를 볼 것입니다. 파이썬 3.6은 'nav'라는 이름의 모듈이없는 ImportError를 던집니다. 나는 많은 관련 게시물을 읽었지만 나의 특별한 문제를 해결하기위한 최상의 기본 옵션을 결정할 수는 없다. 나는 간단한 것을 놓치고 지나치게 복잡한 해결책을 요리하고 싶지 않을지도 모른다.

답변

0

모듈 은 모듈 goog ("nav"은 "할아버지"입니다)보다 몇 레벨 위에 있습니다. 따라서 파이썬의 방법을 사용하여 공식 패키지 구조를 설정해야합니다. 아마도 로컬 pip install 또는 python setup 또는 그와 비슷한 것을 포함 할 것입니다.

체크 아웃 PyPA's Packaging and Distributing Projects "배포"부분은 무시할 수 있지만 나머지 부분은 관련성이 있습니다.

나는 정말로 no-no 인 링크를 제공하고 있다는 것을 알고있다. 그러나 대답은 꽤 길고 복잡하며 그 페이지와 유사한 페이지에서 잘 캡쳐된다.