2011-09-19 4 views
3

나는 다음과 같은 코드 구조 내 IDE (Aptana에 스튜디오)에서 완벽하게 정상적으로 실행이 :파이썬 수입 문제

/ProjectName/ 
    /lib 
    /src 
     /Module1 
     /Module2 
     /Module3 
     __init__.py 
     pyClass.py   ##Python Class 
     /main 
     main.py 

main.py :

import Module3.pyClass as pc 

myClass=pc.pyClass() 

하지만 난하려고 할 때 명령 줄에서 실행, 가져 오기 오류!

importError: No module named Module3.pyClass 

/main 디렉토리에서 실행 중입니다. 모듈 3을 어디에서 가져올 지 모르기 때문에 모듈 3을 어디에서 찾아야합니까?

감사합니다.

+2

수있는 당신하십시오 (당신이 py2exe에/py2app/cxfreeze/당신이 그것으로 인해 작동하는 방식에 약간 다른 솔루션이 필요합니다 무엇으로 동결/컴파일하는 경우.) 가져 오기 전에 main.py에 다음 줄을 추가하고'import sys','print sys.path'라고 출력하십시오. 파이썬 경로에서/path/to/ProjectName/src /를 찾지 못하면 추가해야합니다. 또한 src에 __init__.py 파일을 추가해야합니다. –

+0

PYTHONPATH 환경 변수/sys.path Python 변수에/ProjectName/src /가 포함되어 있는지 확인하십시오. Aptana가 설정 한 값으로 PYTHIONPATH를 설정하려고 할 수 있습니다. –

+0

고마워요.하지만 런타임에 추가하는 방법을 모르겠습니다. 모든 사용자는 내 코드를 실행할 때 컴퓨터에 이미 설정되어 있습니다. –

답변

9

main 디렉토리에서 실행하면 src 디렉토리가 파이썬 모듈 검색 경로에 없습니다. src 디렉토리 (래퍼 스크립트 또는 스크립트를 이동)에서 스크립트를 실행하거나 src 디렉토리를 sys.path에 추가해야합니다. 이것은 아마도 당신이 원하는 것입니다. 방법은 다음과 같습니다

import os 
import sys 
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 

+0

당신의 요점을 가지고 있지만 main.py는 src/main에 있습니다. 위의 코드는 모듈에 경로를 추가하지 않습니다. 코드를 배포해야 할 때 경로를 추가하는 방법을 자세히 설명합니까? –

+0

@Arash 죄송합니다. dirname 대신 dirname의 dirname을 의미했습니다. 이제 해결되었습니다. –

+0

'src'의 루트에 스크립트가 있으면 더 쉽습니다. 그리고 당신은 심지어'main import main; main()', 원한다면. –