【问题标题】:Error when trying to communicate in Python尝试在 Python 中通信时出错
【发布时间】:2018-04-25 06:42:30
【问题描述】:

我想要两个脚本在 python 中进行通信。我想让他们知道其他人是否失败了。

按照您在图片中看到的操作,我有一些问题。我运行rob2.py时自动运行rob1.py,这是为什么呢?

rob1.py

import simpy
import time
from rob2 import brok2

class Moving:
    def __init__(self, env):
        self.env = env
        """What does self.prov do?"""
        self.prov = env.process(self.work())
        self.broken = False
        if self.broken == False:
            global brok1
            brok1 = 0
        else:
            brok1 = 0
        #print(brok1)
    def work(self):
        while True:
            yield env.timeout(20)


if brok2 == 1:
    print("Robot 2 is not broken")
else:
    print("Robot 2 is broken")
env= simpy.Environment()
moving = Moving(env)
env.run(until = 60)

rob2.py

import simpy
import time
from rob1 import brok1

class Placing:

    def __init__(self, env):
        self.env = env
        """What does self.prov do?"""
        self.prov = env.process(self.work())
        self.broken = False
        if self.broken == False:
            global brok2
            brok2=1
        else:
            brok2 = 0

    def work(self):
        while True:
            yield env.timeout(20)

time.sleep(5)
if brok1 == 1:
    print("Robot 1 is not broken")
else:
    print("Robot 1 is broken")
env= simpy.Environment()
placing = Placing(env)
env.run(until = 60)

当我在尝试运行脚本时收到此消息时,我做错了什么?

Traceback (most recent call last):
  File "rob2.py", line 3, in <module>
    from rob1 import brok1
  File "/Users/erik/Python/python/rob1.py", line 3, in <module>
    from rob2 import brok2
  File "/Users/erik/Python/python/rob2.py", line 3, in <module>
    from rob1 import brok1
ImportError: cannot import name 'brok1'

我看到了一些关于 zeroMQ 的帖子,是这样的吗?

【问题讨论】:

  • 嗨,Erik,欢迎来到 SO!我强烈建议您将代码嵌入问题中,而不是证明指向快照图像的链接,输出也是如此。对可读性有很大帮助!祝你好运!
  • 感谢您的反馈,我们会做出改变!
  • 问题是否通过多线程解决,请阅读有关解决同时运行多个任务的问题的信息。对吗?

标签: python-3.x communication


【解决方案1】:

ImportError 异常被抛出,因为 Python 检测到循环导入循环:在您的一个文件中导入另一个文件,该文件本身导入第一个文件,然后导入第二个文件,依此类推。

您需要重新组织代码以避免这种情况。 大多数(所有?)编程语言都不喜欢循环导入。

【讨论】:

  • 知道如何重新组织代码以使其正常工作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 2020-06-14
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
相关资源
最近更新 更多