ProgramingTip

Python이 같은 폴더에서 모듈을 수 없습니다.

bestdevel 2020. 11. 23. 19:47
반응형

Python이 같은 폴더에서 모듈을 수 없습니다.


내 디렉토리는 어떻게 든 같은 디렉토리에서 모듈을 제거 할 수 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? (python2.7)

그래서 두 개의 개의 파일이있는 '2014_07_13_test'디렉토리가 하나 있습니다.

  1. test.py
  2. hello.py

여기서 hello.py :

# !/usr/local/bin/python
# -*- coding: utf-8 -*-

def hello1():
    print 'HelloWorld!'

및 test.py :

# !/usr/local/bin/python
# -*- coding: utf-8 -*-

from hello import hello1

hello1()

여전히 제공은 나에게 준다.

>>> Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 4, in <module>
ImportError: No module named hello

뭐가 문제 야?


귀하의 코드는 괜찮습니다. 귀하의 문제는 귀하가 그것을 시작하는 방법이라고 생각합니다.

'2014_07_13_test'디렉터리에서 Python을 실행해야합니다.

명령 프롬프트를 '2014_07_13_test'디렉토리에 'cd'를 입력합니다.

예를 들면 :

$ cd /path/to/2014_07_13_test
$ python test.py

이와 같이 디렉토리에 'CD'를 할 수 없다면 의 sys.path에 추가 할 수 있습니다.

test.py에서 :

import sys, os
sys.path.append('/path/to/2014_07_13_test')

또는 PYTHONPATH 설정 / 편집

그리고 모든 것이 잘되어야합니다 ...

... 'shebang'줄 (두 파일의 첫 줄)에 약간의 실수가 있습니다. '#'과 '!'사이에 공백이 있습니다.

더 나은 작업을 사용한다.

또한 모든 파일에 shebang 줄이 필요하지 않습니다. 쉘에서 실행 파일로 실행하려는 파일 만 있습니다.


test.py에서 가져 오기를 다음과 같이 변경하십시오.

from .hello import hello1

더 문제가 있었는데 파일의 디렉토리를 경로 목록에 명시 적으로 추가하여 해결했습니다.

import os
import sys

file_dir = os.path.dirname(__file__)
sys.path.append(file_dir)

그 후 디렉토리에서 가져 오는 데 문제가 없습니다.


내가 사용하는 일반적인 솔루션은 다음과 가변합니다. 동일한 폴더에있는 모듈에서 가져 오는 문제를 해결합니다.

import os.path
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))

"xxxx라는 모듈이 없습니다."라는 오류가 발생하는 모듈의 맨 위에 있던십시오.


제 경우에는 하이픈이있는 모듈 안에 코드를 넣었 기 때문에 파이썬이 찾을 수 없었습니다 my-module. 내가 그것을 변경했을 때 my_module작동했습니다.


이 문제가 발생했습니다. 같은 디렉터리에 세 개의 폴더가 있으므로 어느 폴더를 지정해야했습니다. 예 : 폴더 가져 오기 스크립트에서


여기에서 Pycharm을 사용하여 python 3 :

내 파일 이름은 'file_to_open'입니다.

나는 그것을 'FileToOpen'으로 변경했고 잘 작동했습니다.

문제 : 아마도 밑줄 '_'이 마음에 들지 않습니다.

참고 URL : https://stackoverflow.com/questions/24722212/python-cant-find-module-in-the-same-folder

반응형