Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3493 posts.

Network » отправка почты - smtplib.SMTPAuthenticationError: (334, 'UGFzc3dvcmQ6' » Июнь 1, 2010 21:53:01

Пытаюсь отправлять почту через smtp.km.ru:

import smtplib
from email.MIMEText import MIMEText
from extract import MAILS


def send(to):
you = to
# текст письма
text = 'Здравствуйте!'
# заголовок письма
subj = 'САБЖ'
server = "smtp.km.ru"
name,pwd,me = "pythont","123456","pythont@km.ru"
user_name = name
user_passwd = pwd
msg = MIMEText(text, "", "utf-8")
msg['Subject'] = subj
msg['From'] = me
msg['To'] = you

s = smtplib.SMTP(server, port)
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(me, you, msg.as_string())
s.quit()


send("youmail@yandex.ru")
Выдает:

s.login(user_name, user_passwd)
File “C:\Python25\lib\smtplib.py”, line 591, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (334, ‘UGFzc3dvcmQ6’)

Кто нибудь знает в чем тут дело?

ps.
На другие серверы (smtp.mail.ru,mail.rambler.ru) отправляется.

Web » suds и куки » Май 27, 2010 14:37:26

Привет всем.
Пишу небольшой скрипт для связис веб-сервером, в числе прочего требуется получить куки, выдаваемые сервером после удачного логина.

Строчки примерно такие:
client = suds.client.Client(WSDLfile)
client.service.Login('mylogin', 'mypass')
print client.options.transport.cookiejar
В FreeBSD возвращается, как и положено, нечто вроде
<cookielib.CookieJar[<Cookie sessnum=9WAXQ25D37XY535F6SZ3GXKSCTZG8CVJ for .IP.IP.IP.IP/>]>
В винде же возвращается
<cookielib.CookieJar[]>
В чем может быть косяк?

PS Версии питона и там и там - одинаковые, а сам suds ставился из одних исходников.

UPD Решил проблему в лоб - сделал авторизацию “в тупую”, через пост запрос урллиба, но все-таки жутко хотелось разобраться в чем там дело-то было =)

Флейм » Python: ищу партнера-субподрядчика в Киеве » Май 26, 2010 18:37:01

Инструментальный коплекс (WEB-приложение + серверные скрипты) на python для зарубежного заказчика. Перспектива длительного сотрудничества.

Приветствуется знание bazaar, английского/французского.

ЗЫ: Зарегиться на python.su (чтобы оставить вакансию) не получается - 404

Python для новичков » Русские символы в PyScripter и командной строке windows » Май 26, 2010 10:49:52

Пытаюсь написать программу на Python, которая определяет ascii код символа вводимого с клавиатуры. Если запускаю из PyScripter коды русских символов определяются правильно, если же из командной строки - то код пишется только для английских символов.
# -*- coding: utf-8 -*-
import pythoncom, pyHook
import codecs, sys, os
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf

def OnKeyboardEvent(event):
print event.Ascii
if event.KeyID == 192:
exit(1)
return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

GUI » Доступ к данным модели QTableView из другого класса » Май 26, 2010 08:37:50

приветствую,

по примеру из книги Марка создал модель QTableView. Модель имеет также функции сохранения и загрузки данных в/из файл(а). Но, так как программа содержит несколько таблиц (связанных master-detail relation) думаю создать некий класс который будет отвечать за сохранение/загрузку данных и из других моделей. Наверное вопрос елементарный, но не могу добиться данных через границы классов, хотя в пределах одного класа все работает замечательно.

Собственно модель:

class  srcTableModel(QtCore.QAbstractTableModel):

def __init__(self, fileName = QtCore.QString()):
super (srcTableModel, self).__init__()
self.ships = []
self.fileName = fileName
self.dirty = True


def rowCount (self, index=QtCore.QModelIndex()):
return len(self.ships)



def columnCount (self, index=QtCore.QModelIndex()):
return 11


def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.DisplayRole:
return
if orientation == QtCore.Qt.Horizontal:
if section == EQUIPMENT:
return (QtGui.QApplication.translate("MainWindow", "Виробництво", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCCODE:
return (QtGui.QApplication.translate("MainWindow", "№ дж.", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCNAME:
return (QtGui.QApplication.translate("MainWindow", "Найменув. дж.", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCX1:
return (QtGui.QApplication.translate("MainWindow", "X,м", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCY1:
return (QtGui.QApplication.translate("MainWindow", "Y,м", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCTYPE:
return (QtGui.QApplication.translate("MainWindow", "Тип дж.", None, QtGui.QApplication.UnicodeUTF8))
elif section == ZONESIZE:
return (QtGui.QApplication.translate("MainWindow", "Розмір СЗЗ", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCHEIGHT:
return (QtGui.QApplication.translate("MainWindow", "Висота дж., м", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCDIAMETER:
return (QtGui.QApplication.translate("MainWindow", "Діаметер дж., м", None, QtGui.QApplication.UnicodeUTF8))
elif section == GASDEPLETION:
return (QtGui.QApplication.translate("MainWindow", "Витрата ПГВС, м3/с", None, QtGui.QApplication.UnicodeUTF8))
elif section == GASTEMPERATURE:
return (QtGui.QApplication.translate("MainWindow", "Темпер. ПГВС", None, QtGui.QApplication.UnicodeUTF8))

return int(section + 1)


def data (self, index, role=QtCore.Qt.DisplayRole):
if index.isValid() and 0 <= index.row() < len(self.ships):
ship = self.ships [index.row()]
column = index.column()
if role == QtCore.Qt.DisplayRole:
if column == EQUIPMENT:
return QtCore.QVariant(ship.equipment)
elif column == SRCCODE:
return QtCore.QVariant(ship.srcCode)
elif column == SRCNAME:
return QtCore.QVariant(ship.srcName)
elif column == SRCX1:
return QtCore.QVariant(ship.srcX1)
elif column == SRCY1:
return QtCore.QVariant(ship.srcY1)
elif column == SRCTYPE:
return QtCore.QVariant(ship.srcType)
elif column == ZONESIZE:
return QtCore.QVariant(ship.zoneSize)
elif column == SRCHEIGHT:
return QtCore.QVariant(ship.srcHeight)
elif column == SRCDIAMETER:
return QtCore.QVariant(ship.srcDiameter)
elif column == GASDEPLETION:
return QtCore.QVariant(ship.gasDepletion)
elif column == GASTEMPERATURE:
return QtCore.QVariant(ship.gasTemperature)
return


def flags(self, index):
if not index.isValid():
return QtCore.Qt.ItemIsEnabled
return QtCore.Qt.ItemFlags(QtCore.QAbstractTableModel.flags(self, index)|QtCore.Qt.ItemIsEditable)


def setData (self, index, value, role=QtCore.Qt.DisplayRole):
if index.isValid() and 0 <= index.row() < len (self.ships):
ship = self.ships [index.row()]
column = index.column()
if column == EQUIPMENT:
ship.equipment = value.toString()
elif column == SRCCODE:
value, ok = value.toInt()
if ok:
ship.srcCode = value
elif column == SRCNAME:
ship.srcName = value.toString()
elif column == SRCX1:
value, ok = value.toInt()
if ok:
ship.srcX1 = value
elif column == SRCY1:
value, ok = value.toInt()
if ok:
ship.srcY1 = value
elif column == SRCTYPE:
ship.srcType = value.toString()
elif column == ZONESIZE:
value, ok = value.toInt()
if ok:
ship.zoneSize = value
elif column == SRCHEIGHT:
value, ok = value.toInt()
if ok:
ship.srcHeight = value
elif column == SRCDIAMETER:
value, ok = value.toInt()
if ok:
ship.srcDiameter = value
elif column == GASDEPLETION:
value, ok = value.toInt()
if ok:
ship.gasDepletion = value
elif column == GASTEMPERATURE:
value, ok = value.toInt()
if ok:
ship.gasTemperature = value
self.dirty = True
self.emit(QtCore.SIGNAL("dataChanged(QModelIndex, QModelIndex)"), index, index)
return True
return False


def insertRows (self, position, rows=1, index=QtCore.QModelIndex()):
self.beginInsertRows(QtCore.QModelIndex(), position, position + rows - 1)
for row in range(rows):
self.ships.insert(position + row, srcShip("Unknown", 0, "Unknown", 0, 0, "Unknown", 0, 0, 0, 0, 0))
self.endInsertRows()
self.dirty = True
return True


def removeRows(self, position, rows=1, index=QtCore.QModelIndex()):
self.beginRemoveRows(QtCore.QModelIndex(), position, position + rows - 1)
self.ships = self.ships[:position] + self.ships [position + rows:]
self.endRemoveRows()
self.dirty = True
return True

def loadFile(self, fileName):
exception = None
fh = None
self.fileName = QtCore.QString(fileName)
try:
if self.fileName.isEmpty():
raise IOError, "no fileName specified for loading"
fh = QtCore.QFile(self.fileName)
if not fh.open(QtCore.QIODevice.ReadOnly):
raise IOError, unicode(fh.errorString())
stream = QtCore.QDataStream(fh)
magic = stream.readInt32()
if magic != MAGIC_NUMBER:
raise IOError, "unrecognized file type"
fileVersion = stream.readInt16()
if fileVersion != FILE_VERSION:
raise IOError, "unrecognized file type version"
stream.setVersion(QtCore.QDataStream.Qt_4_5)
self.ships = []
while not stream.atEnd():
equipment = QtCore.QString()
stream >> equipment
srcCode = stream.readInt32()
srcName = QtCore.QString()
stream >> srcName
srcX1 = stream.readInt32()
srcY1 = stream.readInt32()
srcType = QtCore.QString()
stream >> srcType
zoneSize = stream.readInt32()
srcHeight = stream.readInt32()
srcDiameter = stream.readInt32()
gasDepletion = stream.readInt32()
gasTemperature = stream.readInt32()
self.ships.append(srcShip(equipment, srcCode, srcName, srcX1, srcY1, srcType, zoneSize, srcHeight, srcDiameter, gasDepletion, gasTemperature))
self.reset()
self.dirty = False
except (IOError, OSError), e:
exception = e
finally:
if fh is not None:
fh.close()
if exception is not None:
raise exception


def saveFile(self):
exception = None
fh = None
try:
if self.fileName.isEmpty():
self.fileName = QtGui.QFileDialog.getSaveFileName(None, "Ships - Choose Save File", "", "Trianon project (*.tri)")
fh = QtCore.QFile(self.fileName)
if not fh.open(QtCore.QIODevice.WriteOnly):
raise IOError, unicode(fh.errorString())
stream = QtCore.QDataStream(fh)
stream.writeInt32(MAGIC_NUMBER)
stream.writeInt16(FILE_VERSION)
stream.setVersion(QtCore.QDataStream.Qt_4_5)
for ship in self.ships:
stream << QtCore.QString(ship.equipment)
stream.writeInt32(ship.srcCode)
stream << QtCore.QString(ship.srcName)
stream.writeInt32(ship.srcX1)
stream.writeInt32(ship.srcY1)
stream << QtCore.QString(ship.srcType)
stream.writeInt32(ship.zoneSize)
stream.writeInt32(ship.srcHeight)
stream.writeInt32(ship.srcDiameter)
stream.writeInt32(ship.gasDepletion)
stream.writeInt32(ship.gasTemperature)
self.dirty = False
except IOError, e:
exception = e
finally:
if fh is not None:
fh.close()
if exception is not None:
raise exception
спасибо,
-вадим

Django » Запуск syncdb на mac os » Май 24, 2010 18:41:42

Помогите пож-та

При попытке запустить вот что выдает
Mb-3:mysite dmitryvinogradov$ python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 303, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 221, in execute
self.validate()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate
num_errors = get_validation_errors(s, app)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
from django.db import models, connection
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module>
backend = load_backend(settings.DATABASE_ENGINE)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend
return import_module('.base', 'django.db.backends.%s' % backend_name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 13, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dynamic module does not define init function (init_mysql)
Не понимаю что делать или какой командой проверить

Выполнял установку
Mb-3:mysite dmitryvinogradov$ easy_install MySQL-python
Searching for MySQL-python
Best match: MySQL-python 1.2.3c1
Processing MySQL_python-1.2.3c1-py2.6-macosx-10.3-fat.egg
MySQL-python 1.2.3c1 is already the active version in easy-install.pth

Using /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQL_python-1.2.3c1-py2.6-macosx-10.3-fat.egg
Processing dependencies for MySQL-python
Finished processing dependencies for MySQL-python

Python для новичков » gotoxy, curses » Май 23, 2010 16:22:15

Необходимо в консоли в определенной координате выводить текст. Погуглил нашел в интернете про модуль curses. Узнал что там можно такое сделать. Но вот пытаюсь написать простейший код, а происходит следующее:
Пишу:
import curses
screen = curses.initscr()
Пишу на иксах, в geany. Так вот если компилирую такой код в гини, то он пишет что в модуле нет такого атрибута. Если пишу в интерпритаторе при закрытом гини, то он компилируется, но происходит не понятное - строки начинают кудато уползать)).

Может есть какойто варинат без использования этого модуля?

Network » Получения списка рабочих тредов и tcp\ip соединений » Май 22, 2010 11:29:09

Есть ли какая нибудь возможность получить список работающих в данный момент тредов и открытых tcp\ip соединений?
Как я уже писал http://python.su/forum/viewtopic.php?id=7488 у меня есть некоторая аномалия не завершённости треда либо открытого tcp\ip соединения.

Вот хочу всё таки узнать что является проблемой, чтобы понять в какую сторону копать.

GUI » [PyQt] QsciScintilla.findFirst регистр символов » Май 21, 2010 22:14:59

При использовании регистронезависимого поиска, метод findFirst/findNext не игнорирует регистр русских символов, хотя с латиницей работает верно. setUtf8(True) делал. Так-же при поиске регулярного выражения найденный текст разваливается на кракозяблы. Кто-нибудь знает как это исправить? Или вариант один - переписать метод?

python: 2.6.5
платформа: winxp
pyqt ривербанковское, 4.7.3-2

Python проекты » Бот XMPP » Май 21, 2010 09:42:41

Написал простой движок бота XMPP - в зависимостях только xmpppy. Опыта в разработке у меня мало - хочу, чтобы вы оценили мою поделку: http://slil.ru/29175249

Сильно не пинать!

Инструментальные средства разработки » Help в Eclipse » Май 19, 2010 21:02:16

Можно как-нибудь сделать так, чтобы при нажатии f1 в эклипсе вылетал хелп по Питону? В идеале, конечно, хочется чтобы как в PyScripter еще и слово под курсором в хелпе искалось.

Django » django-tagging » Май 18, 2010 17:29:46

пользуясь предыдущими постами получил:

urls.py:
urlpatterns = patterns('',
...
(r'^tag/ (?P<tag>[^/]+)/$', 'tagging.views.tagged_object_list'),
)
models.py:
class BlogPost(models.Model):
...
tags = TagField ()
base.html:
{% load tagging_tags cache %}
{% cache 20 tags %}
{% tag_cloud_for_model blog.BlogPost as tags with steps=300 distribution=log min_count=2 %}
{% for tag in tags %}
<a href="/news/tag/{{tag.slug}}/" style="font-size: {{tag.font_size|add:"60"}}%;" title="{{ tag.count }}">
{{tag.name}}
</a>
{% endfor %}
{% endcache %}
INSTALLED_APPS тоже прописал.
так а как же получить теперь облако на странице? где не так?

Флейм » I hate django . com » Май 17, 2010 13:35:38

Набрел на интересный ресурс - http://ihatedjango.com. Самое что понравилось - контент сайта к названию получился с точностью наоборот =)

Python для новичков » xlrd и скрытые строки » Май 15, 2010 08:05:29

Всем привет.
Кто нибудь знает, как в с помощью xlrd узнать является ли строка скрытой или хотя бы получить список скрытых строк на странице?

Network » Пересылка файлов по jabber » Май 14, 2010 23:52:06

Висит у меня на сервере jabber-бот, написанный на питоне+xmpppy (http://xmpppy.sourceforge.net/) . Бот умный, развесистый, как дубль Витьки Корнеева, но пока никак не получается заставить его принимать файлы и сохранять их в определенную папку. Вроде бы есть такая вещь, как xmpppy.filetransfer, но она настолько фигово документирована, что разобраться никак пока не получается. Кто-нибудь ваял что-то такое?

Python для новичков » Контекстное меню для апплета. Пункт с чекбоксом » Май 7, 2010 15:03:39

Написал апплет для себя, для чтения цитат с башорга.
Но захотелось доработать - сделать пункт меню, при клике на который
будет дополнительный пунк меню - чекбокс (галка).

Вот как его сделать - не знаю.

Делаю меню таки образом
self.ppmenu_xml = """
<popup name="button3">
<menuitem name="Обновить цитаты" verb="Reload" stockid="gtk-refresh" />
<menuitem name="O программе" verb="About" stockid="gtk-about" />
</popup>
"""
self.ppmenu_verbs = [
("About", self.on_ppm_about),
("Reload", self.reload_quote)
]
Ну и сам вызов меню
self.applet.setup_menu(self.ppmenu_xml, self.ppmenu_verbs, None)
Подскажите, как туда добавить чекбокс? Ну или хотя бы подскажите доку, где можно об этом
почитать.

GUI » Проблема зависания при использовании потоков и pack_start » Май 5, 2010 19:59:43

Значит рисую на полотне Canvas и, в приведенном ниже коде, на строчке упаковывания в Vertical Box подвисает (точно в этом месте - проверял). GUI сделан на Glade. Использую самые последние версии программ.
И кстати такой еще вопрос заодно - как очищать Canvas или Figure, а то при повторном нажатии на кнопу рендеринга изображения добавляет в Box еще один Canvas. Это часть кода обработчика нажатия по кнопке.

Fig = Figure()
DrawRect = 0, 0, Fig.get_figwidth(), Fig.get_figheight()
ax = Fig.add_axes(DrawRect, axisbg = ‘white’, frameon = True, label = ‘Image’, \
navigate_mode = True, position = (0, 0, 1, 1), \
xlabel = ‘Width’, ylabel = ‘Height’)

ax.imshow(layer, aspect = ‘auto’)
gtk.threads_enter()
self.map_box.pack_start(Canvas, expand = True, fill = True)
#gtk.threads_leave()

Canvas.show()
Canvas.draw()

Network » Запуск приложения через прокси » Май 3, 2010 18:12:14

Как использую питон запустить приложение через прокси?
Проще говоря изобрести велосипед по принципу действия FreeCap,SocksCap и подобных.

Network » firewall » Апрель 29, 2010 14:30:57

Есть какие-нибудь примеры по написанию фаерволла на Питоне? Если кто знает поделитесь пожалуйста.

Python для .Net » IronPython+__future__+doctest » Апрель 27, 2010 21:25:00

from __future__ import unicode_literals, print_function # anything?

def test():
"""
>>> 1+1
2
"""
pass

import doctest
doctest.testmod()
результат
...>"c:\Program Files (x86)\IronPython 2.6\ipy.exe" test.py
**********************************************************************
File "test.py", line 5, in __main__.test
Failed example:
1+1
Exception raised:
Traceback (most recent call last):
File "c:\Program Files (x86)\IronPython 2.6\Lib\doctest.py", line 1240, in
_DocTestRunner__run
exec compile(example.source, filename, "single",
ValueError: unrecognized flags
**********************************************************************
1 items had failures:
1 of 1 in __main__.test
***Test Failed*** 1 failures.
если убрать from __future__ import … - то работает
если перенести тест из функции в глобальную область, то тоже работает

это лечится?