Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3494 posts.

Центр помощи » помогите декомпилировать  » Июль 4, 2014 00:59:47

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

GUI » GtkPaned cycle-child-focus смена стандартного акселератора » Июль 3, 2014 11:02:35

Доброго времени суток!
Подскажите пожалуйста как можно сменить стандартное сочетание клавиш для сигнала cycle-child-focus виджета GtkPaned?

GUI » PyQT: Глобальный перехват нажатия комбинации клавиш » Июль 1, 2014 16:19:32

Необходимо чтобы программа реагировала на нажатие комбинации клавиш независимо в фокусе ввода её окно или нет. Возможно ли это сделать? Среда gnome.

Django » SSlError при попытке развернуть Django на nic.ru » Июнь 29, 2014 14:40:36

Всем привет!

Впервые столкнулся с подобной проблемой, ибо раньше не приходилось работать на nic.ru.
В общем, у них все базируется на фряхе:
uname -a:
FreeBSD web02.nic.ru 8.1-RELEASE FreeBSD 8.1-RELEASE-p5 #10: Fri Sep 30 14:45:56 MSK 2011     root@web22.nic.ru:/usr/obj/usr/src/sys/HNIC-IBM pl#27  i386

python -V:
Python 2.7.3

Django (1.4.3) поставил, приложение развернул, настроил mod_wsgi (версия 3.5) (тестовый test.wsgi вывел заветное “Hello World!”). В браузере же выдает 500 ошибку. Вот что говорят логи:
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181] mod_wsgi (pid=95039): Target WSGI script '/home/atemon/atemon.nichost.ru/docs/index.wsgi' cannot be loaded as Python module.
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181] mod_wsgi (pid=95039): Exception occurred processing WSGI script '/home/atemon/atemon.nichost.ru/docs/index.wsgi'.
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181] Traceback (most recent call last):
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]   File "/home/atemon/atemon.nichost.ru/docs/index.wsgi", line 6, in <module>
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]     import django.core.handlers.wsgi
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]   File "/home/atemon/.local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 8, in <module>
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]     from django import http
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]   File "/home/atemon/.local/lib/python2.7/site-packages/django/http/__init__.py", line 11, in <module>
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]     from urllib import urlencode, quote
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]   File "/usr/local/lib/python2.7/urllib.py", line 26, in <module>
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]     import socket
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]   File "/usr/local/lib/python2.7/socket.py", line 67, in <module>
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181]     from _ssl import SSLError as sslerror
[Sun Jun 29 15:26:43 2014] [error] [client 95.84.157.181] ImportError: cannot import name SSLError

Насколько я смог понять это чуть ли не баг для фряхи (до 9ки).

Понятно что хостинг можно сменить, но хотелось бы разобраться для себя.
Кстати, если кто-то имел опыт разворачивания Django на nic.ru с удовольствием услышу предложения.
P.S. Пытался также установить все со связкой apache + FastCGI (по их инструкции), но для тарифа 202 памяти не хватило.

Спасибо за помощь!

GUI » pyGTK, Повторное открытие окна из Glade » Июнь 28, 2014 23:30:36

Есть условное окно с кнопкой из Glade
После его уничтожения методом destroy()
И повторной загрузке.
На нём не отображаються виджеты. Кто сталкивался?

# -*- coding: utf8 -*-
import sys
import os
try :
	import sqlite3
except:
	print u'Нет модудя sqlite'
try:  
	import pygtk  
	pygtk.require("2.0")  
except:  
	pass  
try:  
	import gtk  
	import gtk.glade  
except:  
	print("GTK Not Availible")
	sys.exit(1)
fss=None
def main():
	global ff, ss
	ss = gtk.Builder()
	ss.add_from_file("kill.glade")
	ff=ss.get_object("window1")
	gg=ss.get_object("button1")
	gg.connect('clicked', svf)
	ff.show()
	gtk.main()
	
	return 0
def svf(widget):
	global ff,ss
        ff.destroy()
	ff=ss.get_object("window1")
	ff.show()
]if __name__ == '__main__':
	main(

Django » Установить свою локализацыю без изменения пакета » Июнь 28, 2014 14:30:20

Есть например django-mail.
В этого приложения локализацыя храниться вот так:
virtualenv/src/django-mailer/mailer/locale/ru/LC_MESSAGES/django.mo
virtualenv/src/django-mailer/mailer/locale/ru/LC_MESSAGES/django.po
Можно ли как подключить новую локаль непосредственно с django-проекта без модификации
virtualenv/src/django-mailer/mailer/locale/

Python для новичков » Можно ли использовать PyQt и PyGTK одновременно? » Июнь 25, 2014 10:15:04

Добрый День.
У меня возникла проблема со скриншотами. Так как я хочу, чтобы все работало как в Windows, так и в Linux, по определению не подходит Imagegrab
Как сделать скрин в Pyqt5 я уже три дня понять не могу (скрн нужен именно области экрана, а не виджета

Казалось, что нашел неплохое решение в использовании PyGTK, написал модуль с одной функцией.
def screenGTK(x=0, y=0, w=600, h=450):
from gi.repository import Gdk
from PyQt5 import QtGui
win = Gdk.get_default_root_window()
pb = Gdk.pixbuf_get_from_window(win, x, y, w, h)
pb.savev(“screenshot.png”,“png”, (), ())

При запуске модуля отдельно - все работает, скрины штампуются как надо. При попытке импорта функции и ее вызова в QApplication, Python ругается
/home/demonklein/PycharmProjects/china/Screenerslot.py:59: Warning: cannot register existing type ‘GdkWindow’
app = QtWidgets.QApplication(sys.argv)
/home/demonklein/PycharmProjects/china/Screenerslot.py:59: Warning: g_param_spec_object: assertion ‘g_type_is_a (object_type, G_TYPE_OBJECT)’ failed
app = QtWidgets.QApplication(sys.argv)
/home/demonklein/PycharmProjects/china/Screenerslot.py:59: Warning: g_object_class_install_property: assertion ‘G_IS_PARAM_SPEC (pspec)’ failed
app = QtWidgets.QApplication(sys.argv)
/home/demonklein/PycharmProjects/china/Screenerslot.py:59: Warning: cannot register existing type ‘GdkScreen’
app = QtWidgets.QApplication(sys.argv)
/home/demonklein/PycharmProjects/china/Screenerslot.py:59: Warning: g_once_init_leave: assertion ‘result != 0’ failed
app = QtWidgets.QApplication(sys.argv)

(Screenerslot.py:9283): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion ‘GDK_IS_SCREEN (screen)’ failed

(Screenerslot.py:9283): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion ‘GDK_IS_COLORMAP (colormap)’ failed

Можно ли здесь что-нибудь сделать?
Если нет, то может подскажете, где брать winId, для того, чтобы все-таки сделать скриншот в PyQt?

Django » django ORM методы extra и annotate » Июнь 24, 2014 18:42:37

пытаюсь сделать сортировку по связаной таблице в которой должен быть фильтр

SELECT S.* 
FROM source S
LEFT JOIN source_processing SP ON SP.source_id = S.id AND SP.oper_type = 'cloud_detection'
ORDER BY label DESC
GROUP BY S.id,
пробовал сделать в питоне вначале через annotate, но не знал как вставить SP.oper_type = 'cloud_detection
попробовал через extra, но там я не понимаю логику действия, если делаешь полный селект вылезает ошибка что количество строк(row)больше одной, а вставить текущий id я не знаю как:
class SourceProcessing(models.Model):
    """
    Обработка источника данных.
    """
    task = models.ForeignKey('task.Task', db_column='task_id', blank=True, null=True)
    source = models.ForeignKey('Source', db_column='source_id')
    operation_type = models.ForeignKey('operation.OperationType', db_column='oper_type')
    operation_status = models.ForeignKey('task.StatusType', db_column='oper_status')
    log = models.ForeignKey('common.Log', blank=True, null=True, db_column='log_id')
    comment = models.CharField(max_length=200, db_column='comment', verbose_name='комментарий')
    label = models.CharField(max_length=10, db_column='label', verbose_name='метка', blank=True, null=True)
    result_type = models.ForeignKey('task.ResultType', db_column='result_type', blank=True, null=True)
    result_obj_id = models.IntegerField(blank=True, null=True, db_column='result_id')
####################################
Source.objects.all().extra(select={'obj_sorting_value':'''
        SELECT SP.label
        FROM source S
        LEFT JOIN source_processing SP
        ON SP.source_id = S.id AND SP.oper_type = 'cloud_detection' AND S.id = %s
        '''},
        params=["КАК СЮДА ВСТАВИТЬ source.id"]
        ).order_by(obj_sorting_value))

Python для новичков » Потоковое аудио » Июнь 24, 2014 04:14:05

Подскажите модуль для потокового воспроизведения аудио с сайта по URL. Неоюходимо для создания простого проигрывателя песен с сайта. Пользуюсь Ubuntu, но хотелось бы по возможности кроссплатформенный модуль.

GUI » Как повторно использовать виджет в Glade? » Июнь 22, 2014 18:08:07

Коллеги, проблема стандартная, но решения найти никак не могу!

Нарисовал в Glade интерфейс. Слева дерево элементов, справа панель закладок notebook. Выбираем слева в дереве элемент - справа динамически добавляется закладка для редактирования этого элемента. Закладок может быть открыто сколько угодно.

В Glade нарисовал отдельное окно с видом для редактирования элемента. Но КАК мне многократно использовать этот вид в качестве шаблона для добавления новой закладки в панель notebook?

Я использую формат glade-файла GtkBuilder GTK+ 2.16. Для обычного glade есть решение faq.pygtk.org/index.py?req=show&file=faq22.011.htp, но как повторить аналогичный ход для Gtk.Builder?

Python для новичков » Получить правильные cookie через request.get » Июнь 17, 2014 16:09:07

Приветствую! Возникла небольшая проблема - как, используя requests.get(), получить все cookie от сайта (если сайт возвращает подряд два заголовка Set-Cookie)?

Заголовки в сниффере Хрома выглядят так:

Set-Cookie:sess_id=h3g1tcei4ggtn6ped6iq4e9is5; expires=Tue, 01-Jul-2014 11:56:03 GMT; domain=.iloveme.su
Set-Cookie:page_unload=N
Собственно, мне из этого всего нужен sess_id. Однако, когда я в питоне выполняю

r = requests.get('http://iloveme.su/')
r.cookies
Он мне возвращает:

<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='page_unload', value='N', port=None, port_specified=False, domain='www.iloveme.su', domain_specified=False, domain_initial_dot=False, path='/', path_specified=False, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]>
т.е. никаких намеков на sessid, только информация из второго Set-Cookie (name='page_unload', value='N'). Где я что упускаю?

Django » Models, using() » Июнь 17, 2014 11:18:58

Столкнулся с одним непонятным моментом.
Есть две базы данных, переключаюсь между ними посредством using('database1') и using('database2').
Всё было замечательно пока не появились одинаковые названия таблиц в этих двух базах. Имея таблицу “client” в двух базах и пытаясь обратиться таким образом:
client_set = db_database2.client.objects.using('database2').all()
Django возвращает мне данные из database1… Например если переименовываю client в ‘database2’ на client_. тогда всё работает как надо. Модель database2 не наследовал от database1.

Подозреваю где-то ведется кеш, но в данном случае он не нужен.

Python для новичков » IDE eric4 в пассивном режиме » Июнь 16, 2014 17:47:37

IDE eric4 запускается в пассивном режиме, соответственно отладка не доступна.
Как отключить пассивный режим?
Зараннее спасибо.

Python для новичков » Итерация по списку без пересечения » Июнь 13, 2014 15:02:03

Дорогие друзья,

помогите, пожалуйста, исправить код. На входе имеем стихотворный текст типа:

Я вас любил, любовь еще, быть может,
В душе моей угасла не совсем.


В каждом стихе нужно выделить устойчивые пары слов (эта часть скрипта уже имеется).
Нужно, чтобы считало: , пропуская «может в», и то же самое с общим количеством пар: 6 пар для первой строки, 5 пар для второй строки и т. д.


import os
from math import log
"""Функции про логарифмы - для последующего подсчета устойчивости словосочетаний"""
def logL(p,k,n):
    if p == 0:
        return (n - k) * log(1 - p)
    elif p == 1:
        return k * log(p)
    else:
        return k * log(p) + (n - k) * log(1 - p)
def logLikehoodRatioBinormal(k1, n1, k2, n2):
    p1 = k1 / n1
    p2 = k2 / n2
    p = (k1 + k2) / (n1 + n2)
    return 2 * (logL(p1, k1, n1) + logL(p2, k2, n2) - logL(p, k1, n1) - logL(p, k2, n2))
"""ОТКРЫВАЕМ ФАЙЛ И НАРЕЗАЕМ ЕГО НА СТИХИ - ПОЛУЧАЕТСЯ СПИСОК СТИХОВ"""
fileObj =  open('C:/Texts/Verses/1.txt', 'r+', encoding='utf-8')
verseList = fileObj.readlines()
"""Задаем словари"""
A = {}
B = {}
AB = {}
N = 0
"""ОБЪЯСНЯЕМ ПИТОНУ, КАК ИТЕРИРОВАТЬ ПО ПОЛУЧЕННОМУ СПИСКУ СТИХОВ И КАК ОТТУДА ИЗВЛЕКАТЬ ОТДЕЛЬНЫЕ СЛОВА"""
"""Вот тут непонятно, как написать код так, чтобы в качестве inp Питон брал последовательно по строке из verseList. И действительно ли программа берет слова в пределах отдельных стихов? Но ответ какой-то получается"""
RUSSIAN_ALPHABET = set("йцукенгшщзхъфывапролджэячсмитьбюёЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ")
def clearWord(word):
    buff = []
    for char in word:
        if char == "ё":
            buff.append("ё")
        elif char in RUSSIAN_ALPHABET or (char == "-" and len(buff) > 0):
            buff.append(char)
    return "".join(buff).lower()
words = []
for verse in verseList:
    verse = verse.split()
    words.extend(clearWord(el) for el in verse if clearWord(el))
print(words)
"""Результат каждый раз - другой, хотя список words всегда один и тот же"""
for verse in range(len(verseList)-1):
    pair = words[verse], words[verse + 1]
    try:
        AB[pair] += 1
    except KeyError:
        AB[pair] = 1
    try:
        A[pair[0]] += 1
    except KeyError:
        A[pair[0]] = 1
    try:
        B[pair[1]] += 1
    except KeyError:
        B[pair[1]] = 1
    N += 1
raitings = []
for pair in AB:
    ab = AB[pair]
    anotb = A[pair[0]] - ab
    notab = B[pair[1]] - ab
    notanotb = N-A[pair[0]] - B[pair[1]] + ab
    raitings.append((pair, logLikehoodRatioBinormal(k1 = ab, n1 = ab + anotb, k2 = notab, n2 = notab + notanotb)))
raitings.sort(key = lambda x: x[1], reverse = True)
for el in raitings[:20]:
    print(el)

Python для новичков » Скриншот всех рабочих столов » Июнь 9, 2014 21:29:02

В системе несколько рабочих столов (не мониторов), перехожу по ним http://www.math.uiuc.edu/~gfrancis/illimath/windows/aszgard_mini/movpy-2.0.0-py2.4.4/movpy/lib/win32/Demos/desktopmanager.py
но как сделать скрин второго или третьего стола, находясь на дефолтном столе?
Нахожу все рабочие столы
import  win32service
winsta=win32service.GetProcessWindowStation()
desktops=winsta.EnumDesktops()
print desktops

Python для новичков » Выделение текста в QTextEditor » Июнь 9, 2014 17:00:21

Задача простая - при наведении курсора на строку , выделить всю строку ( включая беззнаковую область)
## valsList это объект QTextEdit
self._cursor = self._valsList.textCursor()
format = QtGui.QTextCharFormat()
self._cursor.format = format
self._cursor.format.setProperty(QtGui.QTextFormat.FullWidthSelection, True)
self._cursor.format.setBackground(QtCore.Qt.green )
self._cursor.format.setFontUnderline(True)
self._cursor.format.setUnderlineStyle(QtGui.QTextCharFormat.SpellCheckUnderline)
self._cursor.format.setUnderlineColor(QtCore.Qt.red);

## функция вызывается при нажатии мыши в поле QTextEdit
## здесь должно происходить выделение.
def _valsListMousePressEvent(self, event):
print(self._cursor.position())
self._cursor.setPosition( QtGui.QTextCursor.StartOfLine)
self._cursor.movePosition( QtGui.QTextCursor.EndOfLine, QtGui.QTextCursor.KeepAnchor, 1)

В результате жмём мышкой на поле и ничего не происходит . Облазил множество форумов но так и ничего не сработало для меня. Что я делаю не так ?

GUI » Tkinter ttk.treeview отображение длинного текста » Июнь 9, 2014 16:34:06

Есть желание отобразить в одной из колонок treeview весьма длинный текст в элементах дерева. При отображении виджета он обрезается.
Есть ли возможность отобразить такой текст в несколько строк?
Попытался вставить в длинную строку символы \n - перенос строк срабатывает, но видно только 1-ю строку, остальные скрываются.

Python для новичков » Странности авторизации vk » Июнь 8, 2014 15:36:38

Решил побаловаться с urllib, в качестве цели выбрал vk.com. Поставил целью написание бота, авторизующегося на сайте и выводящего, к примеру, список моих друзей. Созрел следующий код:
import urllib 
import urllib2 
url = 'https://login.vk.com/?act=login'
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1',
    }
data = {
    'act': 'login',
    'role': 'al_frame',
    'expire': '',
    'capcha_sid': '',
    'capcha_key': '',
    '_origin': 'http://vk.com',
    'ip_h': '0543f2aec4a37d3631',
    'email': '+7**********',
    'pass': '*********************'
    }
data = urllib.urlencode(data)
print data
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
Вроде бы, все просто? Не тут-то было..
Все бы ничего, если бы я не опробовал его с другим своим аккаунтом vk, на котором авторизация стоит по номеру телефона, а не по мылу. В браузере POST-запрос проходит, после чего vk присылает мне ответ, что авторизация удалась. Однако в ответ на посылку от Питона он выдает:
parent.onLoginFailed(4, {email: ‘%2B7*********3’});
Я попробовать поколдовать с кодированием данных в запросе, но тщетно..
Разъясните, пожалуйста, что не так?

Python для экспертов » Как узнать центр кластера. » Июнь 8, 2014 11:26:51

Добрый день! Я произвожу кластеризацию новостных сообщений. Использую scipy.cluster.hierarchy.
def hier(self):
        dist = pdist(self.A, 'euclidean')
        self.Z = hierarchy.linkage(dist, method='average')
        print self.Z
        return self.Z
где, соответственно, матрица А - матрица слов и количеством слов, встречающихся в определенном новостном сообщении. Матрица Z не показывает центры, но показывает расстояние между двумя сообщениями, помещающиеся в один кластер. И для меня большой вопрос: как найти центр кластера!

Python для новичков »  Django. Почему при первом обращении к странице(тестовый сервер), словарь request.GET — пустой и обращение выдает KeyError?  » Июнь 7, 2014 01:43:40

x=request.GET.copy()
потом передача x в функцию и там уже нужна таблетка

таблетка такая:

if x: pass
else: return "firststart"


при первом обращении словарь пустой(загрузка страницы на тестовом сервере). при последующих обращениях словарь заполняется и работает в обычном режиме.
в шаблоне в тегах установлен default. помогайте, почему пустой словарь в первый запуск? как это забороть?