Python으로 작성한 프로그램을 Windows 환경에서 실행하려고 합니다. 프로그램을 복사하여 Linux(Debian)에서 실행하려고 하면 작동하지 않습니다.
다음과 같은 오류가 발생합니다.
Traceback (most recent call last):
File "BlackBox.py", line 26, in <module>
from BB_Files import BB_Expand
ImportError: No module named BB_Files
BB_Expand 파일이 BB_Files 폴더에 있어도 여전히 오류가 발생합니다.
또한 Python에서 현재 디렉터리의 경로를 추가해 보았습니다.
sys.path.append("/home/pe/Desktop/AES")
# Sub-Folders of AES are also accessible
sys.path.append("/home/pe/Desktop/AES/BB_Files")
하지만 여전히 운이 좋지는 않습니다.
파일 구조는 이렇습니다.
/home/pe/Desktop/AES/Main.py
/home/pe/Desktop/AES/BB_Files
/home/pe/Desktop/AES/BB_Files/BB_Days.py
/home/pe/Desktop/AES/BB_Files/BB_Expand.py
/home/pe/Desktop/AES/BB_Files/BB_Steps.py
이것은 명령의 출력입니다 ls -l
.
drwxrwx--x 4 pe users 4096 Oct 26 21:43 BB_Files
-rw-rw---- 1 pe users 15284 Oct 26 22:04 Main.py
다음은 파일의 일부 초기 코드입니다.
import sys # sys.argv ; sys.path, sys.exit
import os
import hashlib
import struct # Interpret strings as packed binary data
import getopt # for Runtime arguments
import time
from datetime import date
# Append Paths from where the Files would be Imported.
sys.path.append("/home/pe/Desktop/AES")
# Sub-Folders of AES are also accessible
sys.path.append("/home/pe/Desktop/AES/BB_Files")
# Sub-Fodlers of BB_Files are also accessible now (Tables)
from BB_Files import BB_Expand
from BB_Files import BB_Steps
from BB_Files import BB_Days
이것은 오류를 제공하는 줄입니다.
from BB_Files import BB_Expand
Python이 모듈을 찾을 수 없기 때문에 이 줄 이후에는 프로그램이 실행되지 않습니다.
동일한 코드가 Windows에서 완벽하게 실행됩니다.
누구든지 이 문제를 해결하도록 도와줄 수 있나요?
답변1
__init__.py
BB_Files 폴더에 이름이 비어 있을 수 있는 파일을 만들어야 합니다 . ~에서문서:
Python이 디렉터리를 패키지를 포함하는 것으로 처리하려면 __init__.py 파일이 필요합니다. 이는 일반 이름(예: 문자열)이 있는 디렉터리가 나중에 모듈 검색 경로에 나타나는 유효한 모듈을 실수로 숨기는 것을 방지하기 위해 수행됩니다. 가장 간단한 경우 __init__.py는 빈 파일일 수도 있지만 패키지의 초기화 코드를 실행할 수도 있습니다.