我在使用 pamie 时遇到了一些奇怪的问题:http: //pamie.sourceforge.net/。
我已经编写了一个脚本来根据我在网上找到的一个接收器进行一些端口(25)转发,这是重要的代码:
# forwardc2s(source, destination):
# forwards from client to server.
# Tries to post the message to ICE.
def forwardc2s(source, destination):
string = ' '
message = ''
while string:
string = source.recv(1024)
if string:
if string[:4] == 'DATA' or message <> '': # Put the entire text of the email into a variable: message
message = message + string
destination.sendall(string)
else:
posttotracker(message) # post message to tracker.
source.shutdown(socket.SHUT_RD)
destination.shutdown(socket.SHUT_WR)
'posttotracker' 功能尚未完成......它包含的只是:
def posttotracker(message):
ie = PAMIE('http://google.com/')
这给了我一个错误如下:
Unhandled exception in thread started by <function forwardc2s at 0x00E6C0B0>
Traceback (most recent call last):
File "main.py", line 2398, in forwardc2s
posttotracker(message) # post message to tracker.
File "main.py", line 2420, in posttotracker
ie = PAMIE('http://google.com/')
File "main.py", line 58, in __init__
self._ie = win32com.client.dynamic.Dispatch('InternetExplorer.Application')
File "c:\Python26\lib\site-packages\win32com\client\dynamic.py", line 112, in
Dispatch
IDispatch, userName = _GetGoodDispatchAndUserName(IDispatch,userName,clsctx)
File "c:\Python26\lib\site-packages\win32com\client\dynamic.py", line 104, in
_GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "c:\Python26\lib\site-packages\win32com\client\dynamic.py", line 84, in _
GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.II
D_IDispatch)
pywintypes.com_error: (-2147221008, 'CoInitialize has not been called.', None, N
one)
有趣的是,如果我在这个函数之外(例如在 main 函数中)做同样的事情,那么库就会完全按预期工作。
有任何想法吗?
如果这些信息不充分,请原谅我,我只是一个入门的 Python 编码器。