2013-06-02 2 views
1
나는 책 (파이썬 3 객체 지향) 다음있어 파이썬 3의 import 문에 문제가 있어요 다음과 같은 구조 데

:문제 3

parent_directory/ 
     main.py 
     ecommerce/ 
      __init__.py 
      database.py 
      products.py 
      payments/ 
        __init__.py 
        paypal.py 
        authorizenet.py 

을 paypal.py에서 database.py의 Database 클래스를 사용하려고합니다.

ImportError: No module named 'ecommerce' 

그래서 난이 import 문의 모두 시도 :

from .ecommerce.database import Database 

from ..ecommerce.database import Database 

나는이 오류를 얻을 :

from ecommerce.database import Database 

내가이 오류 : 그래서이 시도
SystemError: Parent module '' not loaded, cannot perform relative import 

내가 잘못했거나 누락 되었습니까?

감사합니다.

답변

1

parent_directory을 파이썬의 검색 경로에 추가하십시오. 그래서 예를 들면 :

import sys 
sys.path.append('/full/path/to/parent_directory') 

는 다른 방법으로는 환경 변수 PYTHONPATHparent_directory를 추가 할 수 있습니다.

+0

즉, parent_directory를 다른 위치로 옮기고 싶거나 '전자 상거래'폴더를 패키지로 배포하려는 경우 작동하지 않습니다. 상위 디렉토리에있는 클래스를 가져 오는 다른 방법은 없습니까? – ilovebigmacs

+0

일반적으로 배포 할 때 (예 : 사람들이'pip '를 사용하여 설치하는 경우) 패키지는'site-packages'로 끝납니다. 기본적으로 PYTHONPATH에 있습니다. 개발을 위해서'dev' 등의 디렉토리를 만들어 PYTHONPATH에 넣고 거기에 모든 프로젝트를 넣으십시오. –