Python不从模块导入函数

2024-09-29 23:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个类似于这样的项目:

./
./__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函数show,但它正在导入,因为我可以这样做:

errorHandle.sendMessage(...)

而且它不会有任何实际问题

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

from errorHandle import exceptionHandle

但这也不起作用

我也试过了

from errorHandle import *

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

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

编辑:

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

我已经确保了所有的名字都是正确的,也没有任何一个名字的函数存在,我还尝试了不同的名字,以确保它不是一个奇怪的错误,由于某个名字


Tags: 函数frompyimporttimefunctions名字extra
1条回答
网友
1楼 · 发布于 2024-09-29 23:16:08

在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$ 


相关问题 更多 >

    热门问题