我想从不同的目录导入asyncore,因为我需要对asyncore的工作方式进行一些更改,并且不想修改基本文件。
我可以将它包含在我的脚本文件夹中,但在放入我需要的所有模块后,它最终会变得混乱。
我很清楚创建一个子目录并在其中放入一个空白的__init__.py文件。这不起作用。我不确定会发生什么,但是当我从子目录导入asyncore时,asyncore就会停止工作。特别;即使我正在调用它,connect方法根本不会运行。将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)
我确信这是一个非常简单的东西,我忽略了,但我只是无法解决这个问题。
答案 0 :(得分:0)
使用sys.path.append
- 有关详细信息,请参阅https://docs.python.org/3/tutorial/modules.html。
更新:尝试将调试打印放到模块源的开头和结尾,以查看它们是否按预期导入。您还可以打印要用于查看的模块/对象的__file__
属性,无论您是否导入了预期的内容 - 例如:
import re
#...
print(re.__file__)