无法从模块导入功能导入,而是从模块导入,然后module.function成功

时间:2019-09-05 02:04:44

标签: python python-3.x

我正在编写一个项目,发现以前的正常功能失败。调试后,发现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 可用于解决此问题,但我想知道是什么原因导致了此问题

0 个答案:

没有答案