Python에서 "ImportError: No module name..." 오류를 해결하는 방법은 무엇입니까?
이 가져오기 오류를 해결하는 올바른 방법은 무엇입니까?
디렉토리 구조는 다음과 같습니다.
/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 쉘에서 실행하면 작동합니다.
python
>>> from foo.tasks import my_function
제가 전화를 해야만 작동하지 않습니다.python ./programs/my_python_program.py
대본.
Python은 현재 디렉토리를 다음에 추가하지 않습니다.sys.path
스크립트가 있는 디렉터리입니다. 추가합니다./home/bodacydo/work/project
둘 중 어느 쪽이든sys.path
또는$PYTHONPATH
.
다음 파일을 가지고 계십니까?__init__.py
foo 디렉토리에?그렇지 않으면 python은 foo를 python 패키지로 인식하지 못할 것입니다.
자세한 내용은 python 튜토리얼의 패키지 섹션을 참조하십시오.
설정보다 나은 해결책PYTHONPATH
사용하는 것입니다.python -m module.path
올바르게 설정됩니다.sys.path[0]
모듈을 실행하는 보다 안정적인 방법입니다.
다른 답변자들이 그 이유를 언급했기 때문에 저는 이 문제에 대해 간단히 글을 올렸습니다.python path/to/file.py
놓다path/to
초에PYTHONPATH
(sys.path
).
다음은 단계별 솔루션입니다.
다음 스크립트 추가
run.py
에/home/bodacydo/work/project
다음과 같이 편집합니다.import programs.my_python_program programs.my_python_program.main()
(교체)
main()
당신의 동등한 방법으로my_python_program
.)- 에 가다
/home/bodacydo/work/project
- 달려.
run.py
설명:python이 PYONPATH에 추가되기 때문에 실행되는 스크립트의 경로, 실행run.py
추가할 것/home/bodacydo/work/project
그리고 voila,import foo.tasks
찾을 수 있습니다.
PYONPATH에 라이브러리를 추가하기 위한 솔루션의 예입니다.
~/.bashrc에 다음 행을 추가하거나 직접 실행합니다.
export PYTHONPATH="$PYTHONPATH:$HOME/.python"
그런 다음 필요한 라이브러리를 ~/.python 폴더에 연결합니다.
ln -s /home/user/work/project/foo ~/.python/
제 마음속으로 저는 그것을 고려해야 합니다.foo
폴더가 독립 실행형 라이브러리입니다.저는 그것을 그 곳으로 옮기는 것을 고려하고 싶을지도 모릅니다.Lib\site-packages
python 설치 내의 폴더입니다.다음을 추가하는 것을 고려해 보겠습니다.foo.pth
거기에 줄을 서세요.
도서관이라는 건 알고 있어요./programs/my_python_program.py
에는 다음 행이 포함됩니다.
from foo.tasks import my_function
그러니까 그건 중요하지 않아요../programs
의 형제 폴더입니다../foo
는 사실입니다.my_python_program.py
다음과 같은 스크립트로 실행됩니다.
python ./python/my_myslog_program.py
설치된 버전을 사용할 때 이 문제가 발생하면 사용할 때setup.py
모듈이 내부에 포함되어 있는지 확인합니다.packages
setup(name='Your program',
version='0.7.0',
description='Your desccription',
packages=['foo', 'foo.bar'], # add `foo.bar` here
언급URL : https://stackoverflow.com/questions/2325923/how-to-fix-importerror-no-module-named-error-in-python
'programing' 카테고리의 다른 글
오라클 업데이트 문에서 테이블 이름 대신 하위 조회 사용 (0) | 2023.07.23 |
---|---|
Varchar의 인덱스는 성능에 차이가 있습니까? (0) | 2023.07.23 |
perl - 데이터베이스에서 여러 요청을 보냅니다. (0) | 2023.07.23 |
각진 js에 사용된 것과 같은 매개 변수로 명명된 유형 스크립트? (0) | 2023.07.18 |
rm' 대신 'gitrm'을 사용하여 파일을 제거하는 이유는 무엇입니까? (0) | 2023.07.18 |