시험
if __name__ == '__main__':
from [whatever the name of your package is] import one
else:
import one
Python 3에서 else
절의 부분에 대한 구문은 다음과 같습니다.
from .. import one
다시 생각하면, 이것은 특정 문제를 해결하지 못할 것입니다. 나는 질문을 오해하고 two.py가 기본 모듈로 실행되고 있다고 생각했지만 사실은 아닙니다. 파이썬 2.6 ( absolute_import
에서 가져 오지 않고 __future__
)과 파이썬 3.x가 가져 오기를 처리 하는 방식의 차이점을 고려할 때 어쨌든 파이썬 2.6에서는이 작업을 수행 할 필요가 없습니다.
그래도 결국 Python 3으로 전환하고 패키지 모듈과 패키지 내부의 독립형 스크립트로 모듈을 사용하려는 경우 다음과 같은 것을 유지하는 것이 좋습니다.
if __name__ == '__main__':
from [whatever the name of your package is] import one # assuming the package is in the current working directory or a subdirectory of PYTHONPATH
else:
from .. import one
마음에.
편집 : 이제 실제 문제에 대한 가능한 해결책을 찾으십시오. one
명령 줄을 통해 모듈을 포함하는 디렉토리에서 PyLint를 실행하거나 PyLint를 실행할 때 다음 코드를 입력하십시오.
import os
olddir = os.getcwd()
os.chdir([path_of_directory_containing_module_one])
import one
os.chdir(olddir)
기본적으로 PYTHONPATH를 사용하는 대신, 현재 작업중인 디렉토리가 one.py
가져 오기를 수행 할 때 포함 된 디렉토리인지 확인하십시오 .
(Brian의 대답을 보면 이전 코드를에 할당 할 수는 init_hook
있지만 그렇게 할 경우 단순히 sys.path
내 코드보다 더 우아하게 추가 할 수 있습니다.)