在 Linux 中找不到模块错误,但在 Windows 中工作正常

在 Linux 中找不到模块错误,但在 Windows 中工作正常

我正在尝试在Windows环境中运行我用Python编写的程序当我尝试复制该程序并在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_Files 文件夹中存在文件 BB_Expand,但我仍然收到错误。

我还尝试在 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 文件夹中创建一个名为(可能为空)的文件。从文档:

需要 __init__.py 文件才能使 Python 将目录视为包含包;这样做是为了防止具有通用名称(例如字符串)的目录无意中隐藏稍后出现在模块搜索路径上的有效模块。最简单的情况下,__init__.py可以只是一个空文件,但它也可以执行包的初始化代码

相关内容