Python不从模块导入函数

时间:2021-02-05 10:11:28

标签: python python-3.x python-import

所以,我有一个类似于此形式的项目:

./
./__init__.py
./main.py
./errorHandle.py
./functions.py

现在,在我的 main.py 中有这个:

import errorHandling
from functions import *

在 errorHandle.py 中:

from functions import sendMessage
def exceptionHandle(ex,errorCode):
   def exceptionHandle(ex,errorCode):
print(ex)
extra = ""
status = 1
if errorCode == constants.ErrorCodes.aws:
    constants.awsWorking = 0
    if checkConnection() == True:
        extra = "A network connection was detected but no connection to AWS was possible. Possibilities include an issue of authentication, renamed/incorrectly named shadow, or a duplicate client name. "
        constants.errorsListDelayed[int(time.time())] = [ex,errorCode,extra,constants.TargetConnection.aws]
    else:
        extra = "No internet connection detected/Google DNS down. "
        constants.errorsListDelayed[int(time.time())] = [ex,errorCode,extra,constants.TargetConnection.awsAndMail]
        return
elif errorCode == constants.ErrorCodes.loadConfig:
    extra = checkIniExists()
elif errorCode == constants.ErrorCodes.camera:
    status, extra = checkCameraInitial()
elif errorCode == constants.ErrorCodes.loadImages:
    extra= "Couldn't load images. "
else:
    extra= "Unknown Error location"
if status == 1:
    cv2.destroyAllWindows()
sendErrorMessage(ex,errorCode,extra)
uploadError(ex,errorCode)

(复制后缩进有点乱)

在我的函数中,我有许多函数,包括前面提到的 sendMessage

现在,由于某种原因,虽然我能够导入 errorHandle,但它的任何功能,包括 exceptionHandle 函数都不显示,但它正在导入,因为我可以做这样的事情:

errorHandle.sendMessage(...)

它可以正常工作而没有任何实际问题

我也尝试了不同的导入,不同的错误或多或少导致了相同的想法。所以我尝试了:

from errorHandle import exceptionHandle

但这也没有用。

我也试过

from errorHandle import *

它只加载了sendMessage,我尝试更改errorHandle中的代码以将sendMessage更改为*,它加载了所有functions.py文件,我尝试从errorHandle.py中删除整个导入函数,但没有任何改变.

这里有点迷失,因为它正在导入模块并识别它,而不是模块中的功能。

编辑:

ImportError: cannot import name 'exceptionHandle' from 'errorHandling'

我已确保所有名称都是正确的,而且这些名称中都不存在任何函数,我还尝试了不同的名称以确保它不是由于某个名称而导致的奇怪错误。

1 个答案:

答案 0 :(得分:1)

您的functions.py文件中是否有一个名为errorHandle的函数?

请查看我的代码,它正在运行。您能否提供一个 minimal reproducible example 以便可以复制错误/问题。

user@Inspiron:~/code/general/remthisdir$ cat errorHandle.py ;echo;cat functions.py ;echo ;cat main.py 
from functions import sendMessage
def exceptionHandle():
    print('Inside exceptionHandle')

def sendMessage():
    print('Inside sendMessage')

import errorHandle
from functions import *

if __name__ == '__main__':
    errorHandle.exceptionHandle()
    sendMessage()
user@Inspiron:~/code/general/remthisdir$ python main.py 
Inside exceptionHandle
Inside sendMessage
user@Inspiron:~/code/general/remthisdir$ 


相关问题