我正在编写一个项目,发现以前的正常功能失败。调试后,发现from模块存在问题。我输入from utils import pub
并执行项目,它显示mportError: cannot import name 'pub'
,但是如果我输入'import utils',然后输入utils.pub(),它将成功执行。我的其他使用from module import function
的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()
handle.py
from utils import pub
... some code
它显示
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'
handle.py
import utils
utils.pub(topic,payload,MQTT_IP,MQTT_PORT)
运行正常
和其他使用connect.py
的{{1}}运行正常
项目文件结构的一部分如下
from utils import pub
尽管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
可用于解决此问题,但我想知道是什么原因导致了此问题