[PYTHON] Python에서 "ImportError : No module named ..."오류를 수정하는 방법은 무엇입니까?
PYTHONPython에서 "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.파이썬은 sys.path에 현재 디렉토리를 추가하는 것이 아니라 스크립트가있는 디렉토리를 추가합니다. / home / bodacydo / work / project를 sys.path 또는 $ PYTHONPATH에 추가하십시오.
파이썬은 sys.path에 현재 디렉토리를 추가하는 것이 아니라 스크립트가있는 디렉토리를 추가합니다. / home / bodacydo / work / project를 sys.path 또는 $ PYTHONPATH에 추가하십시오.
-
==============================
2.foo 디렉토리에 __init__.py라는 파일이 있습니까? 그렇지 않다면 파이썬은 foo를 파이썬 패키지로 인식하지 않을 것입니다.
foo 디렉토리에 __init__.py라는 파일이 있습니까? 그렇지 않다면 파이썬은 foo를 파이썬 패키지로 인식하지 않을 것입니다.
자세한 내용은 파이썬 튜토리얼의 패키지 섹션을 참조하십시오.
-
==============================
3.다음은 단계별 솔루션입니다.
다음은 단계별 솔루션입니다.
설명: 파이썬은 실행되는 스크립트의 경로를 PYTHONPATH에 추가하기 때문에 run.py를 실행하면 / home / bodacydo / work / project가 추가됩니다. 그리고 voilà, import foo.tasks가 발견 될 것입니다.
-
==============================
4.라이브러리를 PYTHONPATH에 추가하는 예제 솔루션.
라이브러리를 PYTHONPATH에 추가하는 예제 솔루션.
-
==============================
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.PYTHONPATH를 설정하는 것보다 더 나은 해결 방법은 python -m module.path를 사용하는 것입니다.
PYTHONPATH를 설정하는 것보다 더 나은 해결 방법은 python -m module.path를 사용하는 것입니다.
이렇게하면 sys.path [0]이 올바르게 설정되며 모듈을 실행하는 데보다 안정적인 방법입니다.
나는이 문제에 대한 간단한 글을 쓰고 있는데, 다른 응답자가 python path / to / file.py puts path / to를 PYTHONPATH (sys.path)의 시작 부분에 언급했기 때문이다.
from https://stackoverflow.com/questions/2325923/how-to-fix-importerror-no-module-named-error-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 프로세스 풀 비 데믹? (0) | 2018.10.07 |
---|---|
[PYTHON] 파이썬이 UCS-2 또는 UCS-4로 컴파일되었는지 확인하는 방법은 무엇입니까? (0) | 2018.10.07 |
[PYTHON] 파이썬 언어를위한 isPrime 함수 (0) | 2018.10.07 |
[PYTHON] 파이썬에서 프록시를 사용하여 Selenium Webdriver 실행하기 (0) | 2018.10.07 |
[PYTHON] 파이썬 요청 파일 업로드 (0) | 2018.10.07 |