2017-05-09 3 views
0

플라스크가 있습니다. Python3에서 Python2.7으로 마이그레이션 중입니다. 다음과 같이Python 2.7에서 상대 가져 오기를 올바르게 수행하는 방법

내 프로젝트 구조는 다음과 같습니다

app/ 
    model/ 
     __init__.py 
     exercise.py 
    utils/ 
     __init__.py 
     loader.py 

exercise.py 클래스는 클래스 Exercise가 포함되어 있습니다. 이 파일을 loader.py 파일에 사용해야합니다.

app 폴더 자체는 loader.py에서 Loader 클래스를 호출하는 run.py 파일이있는 Heroku가 프로젝트의 최상위 수준에있다.

from app.model.exercise import Exercise 

을하지만이 Python2.7에서 작동하지 않습니다

이전에 내가 있었다.

sys.path에 추가하면 작동하지 않는 것 같습니다.

올바른 방법은 무엇입니까?

+2

루트 패키지는 어디에 있습니까? 당신의 메인 모듈이'app' 또는 다른 곳에 있습니까? 여기에 표시되지 않은'__init __. py' 파일을 가지고 있습니까? 아니면 문자 그대로 패키지 구조입니까? 'app.model.exercise' 또는'from model.exercise' 중 하나 일 가능성이 높지만, 적어도'model /'디렉토리에는'__init __. py'가 필요합니다. –

+0

@DanielPryden 구조체를 지금 업데이트하겠습니다. –

+0

여기에 표시되지 않는 이름 지정 충돌이 있습니까? –

답변

0

폴더에 __init__.py이 포함되어 있지 않으면 폴더가 파이썬 패키지가 아닙니다. 따라서 app 폴더에 __init__.py 파일이 포함되어 있지 않으면 from app을 가져올 수 없습니다.

+0

그게 문제였습니다. 감사! –

관련 문제