복붙노트

[PYTHON] Python에서 "ImportError : No module named ..."오류를 수정하는 방법은 무엇입니까?

PYTHON

Python에서 "ImportError : No module named ..."오류를 수정하는 방법은 무엇입니까?

이 ImportError 오류를 수정하는 올바른 방법은 무엇입니까?

나는 다음과 같은 디렉토리 구조를 가지고있다.

/home/bodacydo
/home/bodacydo/work
/home/bodacydo/work/project
/home/bodacydo/work/project/programs
/home/bodacydo/work/project/foo

그리고 나는 디렉토리에있다.

/home/bodacydo/work/project

이제 내가 타이핑하면

python ./programs/my_python_program.py

나는 즉시 얻는다.

ImportError: No module named foo.tasks

./programs/my_python_program.py에는 다음 행이 있습니다.

from foo.tasks import my_function

나는 왜 파이썬이 ./foo/tasks.py를 찾지 못하는지 이해할 수 없다.

파이썬 셸에서 처리하면 작동합니다.

python
>>> from foo.tasks import my_function

파이썬 ./programs/my_python_program.py 스크립트를 통해 호출하는 경우에만 작동하지 않습니다.

해결법

  1. ==============================

    1.파이썬은 sys.path에 현재 디렉토리를 추가하는 것이 아니라 스크립트가있는 디렉토리를 추가합니다. / home / bodacydo / work / project를 sys.path 또는 $ PYTHONPATH에 추가하십시오.

    파이썬은 sys.path에 현재 디렉토리를 추가하는 것이 아니라 스크립트가있는 디렉토리를 추가합니다. / home / bodacydo / work / project를 sys.path 또는 $ PYTHONPATH에 추가하십시오.

  2. ==============================

    2.foo 디렉토리에 __init__.py라는 파일이 있습니까? 그렇지 않다면 파이썬은 foo를 파이썬 패키지로 인식하지 않을 것입니다.

    foo 디렉토리에 __init__.py라는 파일이 있습니까? 그렇지 않다면 파이썬은 foo를 파이썬 패키지로 인식하지 않을 것입니다.

    자세한 내용은 파이썬 튜토리얼의 패키지 섹션을 참조하십시오.

  3. ==============================

    3.다음은 단계별 솔루션입니다.

    다음은 단계별 솔루션입니다.

    설명: 파이썬은 실행되는 스크립트의 경로를 PYTHONPATH에 추가하기 때문에 run.py를 실행하면 / home / bodacydo / work / project가 추가됩니다. 그리고 voilà, import foo.tasks가 발견 될 것입니다.

  4. ==============================

    4.라이브러리를 PYTHONPATH에 추가하는 예제 솔루션.

    라이브러리를 PYTHONPATH에 추가하는 예제 솔루션.

  5. ==============================

    5.제 생각에는 foo 폴더가 독립형 라이브러리라고 생각해야합니다. 파이썬 설치 내에서 Lib \ site-packages 폴더로 이동하는 것이 좋습니다. 거기에 foo.pth 파일을 추가하는 것이 좋습니다.

    제 생각에는 foo 폴더가 독립형 라이브러리라고 생각해야합니다. 파이썬 설치 내에서 Lib \ site-packages 폴더로 이동하는 것이 좋습니다. 거기에 foo.pth 파일을 추가하는 것이 좋습니다.

    ./programs/my_python_program.py에는 다음 행이 포함되어 있으므로 라이브러리라는 것을 알고 있습니다.

    그래서 ./programs는 ./foo의 형제 폴더입니다. my_python_program.py가 다음과 같은 스크립트로 실행된다는 것은 사실입니다.

  6. ==============================

    6.PYTHONPATH를 설정하는 것보다 더 나은 해결 방법은 python -m module.path를 사용하는 것입니다.

    PYTHONPATH를 설정하는 것보다 더 나은 해결 방법은 python -m module.path를 사용하는 것입니다.

    이렇게하면 sys.path [0]이 올바르게 설정되며 모듈을 실행하는 데보다 안정적인 방법입니다.

    나는이 문제에 대한 간단한 글을 쓰고 있는데, 다른 응답자가 python path / to / file.py puts path / to를 PYTHONPATH (sys.path)의 시작 부분에 언급했기 때문이다.

  7. from https://stackoverflow.com/questions/2325923/how-to-fix-importerror-no-module-named-error-in-python by cc-by-sa and MIT license