Python can';t从模块导入函数导入模块,但导入模块,则module.function成功

Python can';t从模块导入函数导入模块,但导入模块,则module.function成功,python,python-3.x,Python,Python 3.x,我正在写一个项目,发现以前的正常功能失败。调试后,发现from模块存在问题。我从utils import pub键入,然后执行项目,它显示导入错误:无法导入名称“pub”,但如果我键入“import utils”,然后键入utils.pub(),它将成功执行。我的另一个py文件使用了模块导入函数的,可以直接使用 utils.py import paho.mqtt.client as mqtt import paho.mqtt.subscribe as subscribe def pub(top

我正在写一个项目,发现以前的正常功能失败。调试后,发现from模块存在问题。我从utils import pub键入
,然后执行项目,它显示
导入错误:无法导入名称“pub”
,但如果我键入“import utils”,然后键入utils.pub(),它将成功执行。我的另一个py文件使用了模块导入函数的
,可以直接使用

utils.py

import paho.mqtt.client as mqtt
import paho.mqtt.subscribe as subscribe

def pub(topics, payload, mqtt_host, mqtt_port):
    client = mqtt.Client()
    client.enable_logger(logger)
    client.connect(mqtt_host, mqtt_port, 60)
    client.loop_start()
    client.publish(topics, payload, 2)
    client.loop_stop()
from utils import pub

... some code
import utils

utils.pub(topic,payload,MQTT_IP,MQTT_PORT)
handle.py

import paho.mqtt.client as mqtt
import paho.mqtt.subscribe as subscribe

def pub(topics, payload, mqtt_host, mqtt_port):
    client = mqtt.Client()
    client.enable_logger(logger)
    client.connect(mqtt_host, mqtt_port, 60)
    client.loop_start()
    client.publish(topics, payload, 2)
    client.loop_stop()
from utils import pub

... some code
import utils

utils.pub(topic,payload,MQTT_IP,MQTT_PORT)
它表明

Traceback (most recent call last):
  File "connect.py", line 7, in <module>
    from utils import *
  File "utils.py", line 1, in <module>
    from handle import app_handle
  File "handle.py", line 6, in <module>
    from utils import pub
ImportError: cannot import name 'pub'
它运行正常

而使用utils import pub中的
的其他
connect.py
运行正常

项目文件结构的一部分如下所示

total 64
drwxr-xr-x 4 user  user   4096 Sep   4 18:36 ./
drwxr-xr-x 3 user  user   4096 Aug   3 17:33 ../
-rwxr-xr-x 1 user  user   3514 Sep   5 09:14 collect.py*
-rw------- 1 user  user   6646 Sep   5 09:56 connect.py
-rwxr-xr-x 1 user  user   2403 Sep   5 09:46 handle.py*
drwxr-xr-x 2 root root  4096 Sep   5 09:46 __pycache__/
-rw-rw-r-- 1 user  user  17495 Sep   5 09:15 utils.py

虽然
import
可用于解决此问题,但我想知道是什么原因导致此问题

您是否存在循环/相互依赖关系?这可能会导致这个问题。这也解释了为什么它在另一个文件中运行良好ㅂ在我的项目中存在循环/相互依赖关系。非常感谢,没问题。在这种情况下,您必须继续使用
importfoo
语法。