[python] Python 스크립트를 실행하려고 할 때“ImportError : No module named”

파이썬 스크립트를 시작하는 스크립트를 실행하려고합니다. ImportError : No module named …라는 메시지가 표시되지만 ipython을 시작하고 인터프리터를 통해 동일한 방식으로 동일한 모듈을 가져 오면 모듈이 허용됩니다.

무슨 일이 일어나고 어떻게 해결할 수 있습니까? 파이썬이 PYTHONPATH를 어떻게 사용하는지 이해하려고 노력했지만 완전히 혼란 스럽습니다. 어떤 도움이라도 대단히 감사하겠습니다.



답변

이 문제는 명령 행 IPython 인터프리터가 현재 경로를 사용하는 방법과 별도의 프로세스 (IPython 노트북, 외부 프로세스 등) 와 같은 방식으로 인해 발생합니다 . IPython은 sys.path뿐만 아니라 현재 작업중인 디렉토리에서도 가져올 모듈을 찾습니다. 명령 행에서 인터프리터를 시작할 때 현재 작동중인 디렉토리는 ipython을 시작한 디렉토리와 동일합니다.

import os
os.getcwd() 

이것이 사실임을 알 수 있습니다.

그러나 ipython 노트북을 사용하고 있고 실행 os.getcwd()중이고 현재 작업 디렉토리가 ipython_notebook_config.py 파일에서 노트북이 작동하도록 지시 한 폴더입니다 (일반적으로c.NotebookManager.notebook_dir 설정 사용).

해결책은 파이썬 인터프리터에게 모듈 경로를 제공하는 것입니다. 가장 간단한 해결책은 해당 경로를 sys.path 목록에 추가하는 것입니다. 노트북에서 먼저 다음을 시도하십시오.

import sys
sys.path.append('my/path/to/module/folder')

import module-of-interest

그래도 문제가 해결되지 않으면 가져 오기 경로와 관련이없는 다른 문제가있는 것이므로 문제에 대한 자세한 정보를 제공해야합니다.

이것을 해결하는 더 나은 (그리고 더 영구적 인) 방법은 PYTHONPATH 를 설정하는 것입니다 . 이것은 PYTHONPATH 를 설정하여 인터프리터에게 파이썬 패키지 / 모듈에 대한 추가 디렉토리를 제공합니다. PYTHONPATH를 전역 변수로 편집하거나 설정하는 것은 운영 체제에 따라 다르며 여기에서 Unix 또는 Windows에 대해 자세히 설명합니다 .


답변

__init__.pypython 프로젝트를 실행하는 동안 폴더 아래 에 이름 으로 빈 python 파일을 작성하면 오류가 표시됩니다.


답변

둘 다 동일한 통역사를 사용하고 있는지 확인하십시오. 우분투에서 나에게 일어난 일 :

$ ipython3 -c 'import sys; print(sys.version)'
3.4.2 (default, Jun 19 2015, 11:34:49) \n[GCC 4.9.1]

$ python3 -c 'import sys; print(sys.version)'
3.3.0 (default, Nov 27 2012, 12:11:06) \n[GCC 4.6.3]

그리고 sys.path두 통역사가 달랐습니다. 이 문제를 해결하기 위해 Python 3.3을 제거했습니다.


답변

주요 이유는 Python과 IPython의 sys.path가 다르기 때문입니다.

lucypark link를 참조하십시오 . 솔루션이 작동합니다. opencv를 설치하면 발생합니다.

conda install opencv

iPython에서 가져 오기 오류가 발생했습니다.이 문제를 해결하려면 다음 세 단계가 있습니다.

import cv2
ImportError: ...

1. 다음 명령으로 Python 및 iPython의 경로를 확인하십시오.

import sys
sys.path

Python과 Jupyter와는 다른 결과가 나타납니다. 두 번째 단계 sys.path.append 는 시도하여 오류로 누락 된 경로를 수정하는 데 사용 하십시오.

2. 임시 솔루션

iPython에서 :

import sys
sys.path.append('/home/osboxes/miniconda2/lib/python2.7/site-packages')
import cv2

ImportError:..문제 해결

3. 영구적 인 해결책

iPython 프로파일을 작성하고 초기 추가를 설정하십시오.

bash 쉘에서 :

ipython profile create
... CHECK the path prompted , and edit the prompted config file like my case
vi /home/osboxes/.ipython/profile_default/ipython_kernel_config.py

vi에서 파일에 추가하십시오.

c.InteractiveShellApp.exec_lines = [
 'import sys; sys.path.append("/home/osboxes/miniconda2/lib/python2.7/site-packages")'
]

끝난


답변

이렇게 sys.path.append('my-path-to-module-folder')작동하지만 IPython에 모듈을 사용할 때마다이 작업을 수행하는 것을 방지하기 위해, 당신은 추가 할 수 있습니다 export PYTHONPATH="my-path-to-module-folder:$PYTHONPATH"당신에 ~/.bash_profile파일.


답변

ipython을 설치하기 전에 easy_install을 통해 모듈을 설치했습니다. 말하다sudo easy_install mechanize .

ipython을 설치 한 후, ipython이 모듈을 인식하도록 easy_install을 다시 실행해야했습니다.


답변

비슷한 문제 가 있었지만 python3대신 대신 호출하여 문제를 해결했습니다 python. 내 모듈은 Python3.5였습니다.