Nenhum módulo Encontrado erro no Linux mas Funciona bem no Windows

1

Estou tentando executar um programa que codifiquei em Python no ambiente Windows Quando estou tentando copiar o programa e executá-lo no Linux (Debian), Não vai funcionar,

Está dando o seguinte erro,

Traceback (most recent call last):
  File "BlackBox.py", line 26, in <module>
    from BB_Files import BB_Expand
ImportError: No module named BB_Files

Apesar da presença do arquivo BB_Expand dentro da pasta BB_Files, ainda estou recebendo o erro.

Eu também tentei anexar o caminho dos meus diretórios atuais no Python,

sys.path.append("/home/pe/Desktop/AES")
# Sub-Folders of AES are also accessible
sys.path.append("/home/pe/Desktop/AES/BB_Files")

Mas ainda não há sorte,

Esta é a estrutura de arquivos,

/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 

esta é a saída do comando 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

Este é um código inicial no arquivo,

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

Esta é a linha que dá um erro,

from BB_Files import BB_Expand

O programa não é executado após esta linha porque o Python não encontrou este módulo.

O mesmo código funciona perfeitamente no Windows.

alguém poderia me ajudar com isso?

    
por Sufiyan Ghori 26.10.2013 / 19:17

1 resposta

2

Você precisa criar um arquivo (possível vazio) chamado __init__.py na sua pasta BB_Files. De os documentos :

The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package

    
por 27.10.2013 / 01:57

Tags