【发布时间】:2016-06-18 05:49:57
【问题描述】:
我想从不同的目录导入 asyncore,因为我需要对 asyncore 的工作方式进行一些更改,并且不想修改基础文件。
我可以将它与我的脚本一起包含在文件夹中,但是在将我需要的所有模块放在那里之后,它最终变得相当混乱。
我很清楚创建一个子目录并将一个空白的 __init__.py 文件放入其中。这不起作用。我不确定会发生什么,但是当我从子目录导入 asyncore 时,asyncore 完全停止工作。具体来说;连接方法根本没有运行,即使我正在调用它。将 asyncore 移动到主目录并导入它通常会消除此问题。
我大量浏览了我的代码,但这仍然存在同样的问题:
from Modules import asyncore
from Modules import asynchat
from Modules import socket
class runBot(asynchat.async_chat, object):
def __init__(self):
asynchat.async_chat.__init__(self)
self.connect_to_twitch()
def connect_to_twitch(self):
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.connect(('irc.chat.twitch.tv',6667))
self.set_terminator('\n')
self.buffer=[]
def collect_incoming_data(self, data):
self.buffer.append(data)
def found_terminator(self):
msg = ''.join(self.buffer)
print(msg)
if __name__ == '__main__':
# Assign bots to channels
bot = runBot()
# Start bots
asyncore.loop(0.001)
我确定这是我忽略的非常简单的事情,但我无法弄清楚。
【问题讨论】:
-
Importing files from different folder in Python 的可能重复项请务必查看第二个答案。
-
哦,来吧。我特别指出,使用 init.py 文件是行不通的。第一个答案应该有效,尽管它不是很漂亮。如果存在替代方案,我将不胜感激,或者解释为什么当通过包含 init.py 的子文件夹导入时 asyncore 无法正常工作。
标签: python-3.x asyncore