나는 다음과 같은 디렉토리 구조 "새총"라는 파이썬 프로젝트/라이브러리를 가지고있다.파이썬 3.6에서 절대 및 상대 임포트를 어떻게 사용합니까? <code>__main__.py</code>에서</p> <pre><code>slingshot/ __init__.py __main__.py build.py deploy.py util/ __init__.py prepare_env.py cdn_api.py </code></pre> <p>내가 <code>util/prepare_env.py</code>에서 기능을 가져올 것 :
내가 util
내 프로젝트에서 내가 가지고있는 util
을 의미 수 있도록, 그리고 것없는 곳에 설치 될 수있는 몇 가지 다른 util
라이브러리입니다.
나는 from .util import prepare_env
을 시도했지만 오류가 발생합니다.
from util import prepare_env
"util"의 모호성을 해결하지 못하는 것 같습니다.
내가 뭘 잘못하고 있니? 다음과 같이
__main__.py
은 다음과 같습니다
import os
from .util import prepare_env
if __name__ == '__main__':
if 'SLINGSHOT_INITIALIZED' not in os.environ:
prepare_env.pip_install_requirements()
prepare_env.stub_travis()
prepare_env.align_branches()
os.environ['SLINGSHOT_INITIALIZED'] = 'true'
을 내가 python3 ./slingshot
를 입력하면 다음과 같은 에러가 발생
/usr/local/opt/python3/bin/python3.6: Relative module names not supported
: 나는
python3 -m ./slingshot
나는 다음과 같은 오류가 입력 할 때
File "./slingshot/__main__.py", line 2, in <module>
from .util import prepare_env
ImportError: attempted relative import with no known parent package
을
당신이 얻을 오류를 공유하세요, 당신이 당신의'__main __ py' 스크립트를 시작하는 방법.. –
'python3 -m slingshot' ('. /'접두사 없음)을 실행해야합니다. –