小编Min*_*ink的帖子

使用Python中的imaplib在Gmail中创建草稿消息

我想编写一个python模块,将数据发送到G-mail帐户中的草稿消息.大约两周前我写了一个脚本,完全使用imaplib.我的模块的简化示例如下.(我已为任何人测试此脚本创建了一个测试电子邮件地址.)

import imaplib
import time
conn = imaplib.IMAP4_SSL('imap.gmail.com', port = 993)
conn.login('testpythoncreatedraft@gmail.com', '123456aaa')
conn.select('[Gmail]/Drafts')
conn.append("[Gmail]/Drafts", '', imaplib.Time2Internaldate(time.time()), "TEST")
Run Code Online (Sandbox Code Playgroud)

它使用了.append函数,但今天当我运行模块时它会产生以下错误:

Traceback (most recent call last):
  File "C:/Windows/System32/email_append_test.py", line 6, in <module>
    conn.append("[Gmail]/Drafts", '', imaplib.Time2Internaldate(time.time()), "TEST")
  File "C:\Python26\lib\imaplib.py", line 317, in append
    return self._simple_command(name, mailbox, flags, date_time)
  File "C:\Python26\lib\imaplib.py", line 1060, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "C:\Python26\lib\imaplib.py", line 895, in _command_complete
    raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.error: APPEND command error: BAD ['Invalid Command']
Run Code Online (Sandbox Code Playgroud)

正如我之前所说,这个模块以前工作过.它成功地在其正文中创建了带有字符串"Test"的草稿消息.由于此脚本曾经起作用,因此它似乎更可能与Google对G-mail帐户IMAP功能所做的更改有关,但错误似乎表明APPEND命令中存在错误.我已经在两台不同的计算机上测试了python脚本,看看我的库文件是否已损坏,但仍然存在相同的错误.

另外,我使用的是Python …

python imaplib gmail-imap

8
推荐指数
1
解决办法
3950
查看次数

将pyqtgraph多处理实现到pyqt小部件中

我试图在我用Python设计的GUI上绘制图像.完整的程序将从相机收集图像数据,然后在GUI上显示图像.我已经探索过使用matplotlib,但它对于我的应用来说太慢了.我需要快速更新的情节(最好尽可能快地从相机中获取,一次是半秒或秒).这对pyqt来说很有挑战性,因为即使使用QThread,情节似乎也只能在主线程上更新,这会导致我的程序停止并且GUI无法被用户访问.

我读到pyqtgraph假设是一个比matplotlib快得多的绘图库.所以我尝试了它并且喜欢它,但它在显示图像时似乎与matplotlib有同样的问题.它会停止整个GUI.我做了一些研究并遇到了这个问题:没有paintEvent绘画,其中一个答案提出使用QtProcess().因此,我的问题是,是否有可能(如果是这样,你能提供一些示例代码)将QtProcess()实现到GUI中,即如何在一个单独的进程中运行GUI?(另外,如果有一种方法可以使用matplotlib,那将非常有帮助.)

这是我设计用来测试我的问题的简单示例.我从pyqtgraph的示例中获取了一个示例脚本,并将pyqtgraph图导入pyqt小部件.然后按下pushButton时,它显示的图表.如果您运行脚本,您会注意到第一个绘图需要很长时间才能加载(6或7秒).再次按下按钮,似乎加载速度更快.我正在QThread()中进行所有数据生成,但是绘图似乎需要主线程才能工作,即使它是在QThread中完成的.我想做与本例中完全相同的事情,除了使用QtProcess()来处理绘图.

欢迎任何有关策划或可能的替代方案的任何其他建议.谢谢

GUI脚本:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'GUI.ui'
#
# Created: Fri Jun 28 14:40:22 2013
#      by: PyQt4 UI code generator 4.9.5
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(800, 534)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.gridLayout_2 = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) …
Run Code Online (Sandbox Code Playgroud)

python multithreading matplotlib multiprocessing pyqtgraph

4
推荐指数
1
解决办法
5255
查看次数