Python이 같은 폴더에서 모듈을 수 없습니다.
내 디렉토리는 어떻게 든 같은 디렉토리에서 모듈을 제거 할 수 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까? (python2.7)
그래서 두 개의 개의 파일이있는 '2014_07_13_test'디렉토리가 하나 있습니다.
- test.py
- 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
'ProgramingTip' 카테고리의 다른 글
크기 만 제공하여 Java 에서처럼 Kotlin에서 배열을 생성해야합니까? (0) | 2020.11.24 |
---|---|
업데이트 할 수 없음 : 추적 된 분기 없음 (0) | 2020.11.23 |
TypeError : JSON 객체는 '바이트'가 아닌 str이어야합니다. (0) | 2020.11.23 |
'localhost'에서 MySQL 서버에 수 없음 (10061) (0) | 2020.11.23 |
C ++ STL 세트 차이 (0) | 2020.11.23 |