【发布时间】:2013-03-29 20:07:51
【问题描述】:
我正在尝试构建一些 python 脚本。我在我的主脚本(start.py)中导入了(import Handler)一组函数。在 start.py 中,我调用其中一个导入的函数来从 config (dir1) 动态导入脚本。我需要在从配置导入的文件之一中使用 1 个函数(消息(自我,文本)在 MyScript(协议)类中我的主脚本 start.py 中的内容)。 所以我的目录结构是:
MainDir
start.py (main script)
Handler.py
config.cfg
dir1 (dir with plugins)
HelloWorld.py (this needs to use function from start.py)
你能帮帮我吗? 谢谢你。 编辑: Start.py 是 Twisted TCP 服务器,我需要在我的插件中使用一些扭曲的功能。
【问题讨论】:
-
显而易见的解决方案是 (a) 将这些功能从
start.py中移出并移到start和插件都可以导入的模块中,(b) 使start可以导入的(也就是说,确保你做的if __name__位正确,等等),或者(c)将函数集合(甚至可能是start模块本身,如果你真的想要的话)传递给任何需要调用功能。其中一个对你不起作用是有原因的吗? -
@suspectus:
RuntimeError: maximum recursion depth exceeded -
我的 start.py 是一个扭曲的 TCP 服务器,我的插件中需要一些功能(例如向客户端发送消息)。如果我导入它,twisted 将启动新服务器,所以这不合适。如何移动函数以在扭曲协议之外向客户端发送消息?