Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3496 posts.

Базы данных » Помогите найти cxOracle для Python 2.7 и Oracle 9.2 » Ноя. 3, 2012 16:35:37

кто-нибудь может сам делал? на sourcefourge такого нету, не могу на работе залезть питоном в бд…

Центр помощи » Вывод условия » Ноя. 2, 2012 18:03:45

Добрый вечер!

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

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import subprocess
from stat import *
for root, subFolders, fileNames in os.walk('/'):
    for fileName in fileNames:
        path = os.path.join(root, fileName)
	if path[0:6] == '/proc/': break
        try:
        					
            mode = os.stat(path).st_mode
        	if S_ISSOCK(mode):
           		print path
			if subprocess.call('lsof | grep '+path, shell=True):
				print 'Данный Socket в режиме прослушивания'
			else:
				print 'У Socket есть процесс!'
        
        except:
            pass

Базы данных » Выбор внешней open source-based поисковой машины. » Ноя. 2, 2012 01:38:34

Итак, прошу уважаемое коммьюнити помочь с разрешением следующей проблемы. Описываю возможно подробным образом, дабы избавить заранее тему от флейма.

Вводная:
1. Имеется сервис;
2. Сервис использует в своей работе python и postgresql;
3. Каждый клиент сервиса имеет свою схему данных;
4. Схема данных довольно непростая.
Пробовали решать проблему по всякому, и интенсивно (расширенный стоп-лист, игрались с типами индексов в ПЖ) и экстенсивно (сейчас работает система блокировок, но по причинам уебанской архитектуры фреймворка, на ктором базируется сервис, этот способ работает не всегда).

Нужно производить быстрый поиск во всем этом хозяйстве. Поставлена задача выбрать внешнюю open source-based поисковую машину. Пока выбираю между Apache Lucene и Sphinx.
От данных машинок требуется следующий функционал:
1. Много индексов (требование вытекает из п3, то есть, каждый клиент имеет свой собственный набор данных и, соответственно свой поисковый индекс). Из этого требования следует также:
1.1. Создание и подключение нового индекса на лету, т.е. каждый раз когда создается схема для нового клиента надо создавать и индекс без перезапуска демона.
1.2. Аналогично и с удалением схемы.
– Вариант с патчем конфига поисковой машины для каждого клиента не очень желателен, ибо, опять-же, перезапуск демона.
2. Удаление и обновление записей индекса на лету, без перезапуска демона.
3. Как было упомянуто в п.4, у сервиса имеется довольно непростая схема данных. Соответственно, как можно произвести параллельную выборку по полям нескольких таблиц в БД через JOIN одновременно с поиском по поисковому индексу машины?
4. Сколько примерно жрет места на диске сам файл индекcа?
5. Требуется ли ему что-то вроде VACUUM? (читай, надо ли перезапускать демон для совершения служебных операций)
6. Как изменяется скорость чтения при существенном увеличенни количества данных, линойно/экспотенциально? (Если записей в БД для одной схемы, скажем, 20 млн по несколько десятков кб в каждой)
7. Производится ли индексирование html-документов или нужна предобработка?
8. Также время на перезапуск демона поисковой машины должно быть минимальным.

GUI » PyQt Управление прозрачностью окна » Окт. 29, 2012 22:48:59

Как сделать дочернее окно прозрачным, если для родителя указан фон?
self.setWindowOpacity(0.5) работает только с родителем и влияет на все дочерние окна

Фон для родителя
pal = self.palette()
pal.setBrush(QPalette.Normal,QPalette.Window,QBrush(image))
self.setPalette(pal)

Если для дочерних окон нельзя установить прозрачность, какими путями можно достичь этого же результата?

Так можно создать прозрачное дочернее окно, но как регулировать прозрачность?
pixmap = QPixmap('fon.png')
pal = self.palette()
pal.setBrush(QPalette.Normal,QPalette.Window,QBrush(pixmap))
pal.setBrush(QPalette.Inactive,QPalette.Window,QBrush(pixmap))
self.setPalette(pal)
self.setMask(pixmap.mask())

# Так работает, но тут уже готовое изображение. Я так понимаю, можно через QColor залить фон и через маску добавить прозрачность. (В теории, я не знаю как это сделать)
image = QImage('menu/fon50.png')
image = image.scaledToWidth(w.xmax/100*60)
image = image.scaledToHeight(w.xmax/100*60)
pixmap = QPixmap(image)
pal = self.palette()
pal.setBrush(QPalette.Normal,QPalette.Window,QBrush(pixmap))
pal.setBrush(QPalette.Inactive,QPalette.Window,QBrush(pixmap))
self.setPalette(pal)
self.setMask(pixmap.mask())
self.setWindowOpacity(0.5)

Python для новичков » запуск потока из потока » Окт. 26, 2012 12:34:31

Нужна вваша помощь, есть следующая задумка: серверный скрипт, при получении сообщения должен показать его на экране монитора, для этого воспользовался wx модулем. Но при этом возникает следующая проблема, пока не закроешь окно с сообщением, новое не появится. Эту проблем я решил запуском функции отображения окна в отдельном потоке, но порожденном из другого потока который слушает и получает текстовые сообщения от клиента. В принципе все заработало как надо, но Винду, в отличии от Убунту, этот сценарий не устраивает и она сообщает:
python.exe - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства., а
В общем, как можно решить эту проблему?
Серверный скрипт:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import os, sys, time, wx, socket, threading
def show_mes(text):
    #создаем окно с текстовым сообщением
    class InsertFrame(wx.Frame):
        def __init__(self, parent, id=-1):
            wx.Frame.__init__(self, parent, id, 'Server info',pos=(1480,1070),
                size=(370, 80), style=(wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.SIMPLE_BORDER)))
            panel = wx.Panel(self)
            info = text.decode('utf-8')
            pnl = wx.Panel(self, -1, size=(370, 80), style=wx.NO_BORDER)
            st1 = wx.TextCtrl(pnl, -1, info, size=(370, 80), style=wx.ALIGN_LEFT | wx.TE_WORDWRAP | wx.TE_READONLY 
            | wx.TE_RICH2)
            #st1.SetBackgroundColour("Yellow")
        def OnCloseMe(self, event):
            self.Close(True)
        def OnCloseWindow(self, event):
            self.Destroy()
    if __name__ == '__main__':
        app = wx.PySimpleApp()
        frame = InsertFrame(parent=None, id=-1)
        frame.Show()
        app.MainLoop()
class MyThread(threading.Thread):
    def run (self):
        show_mes(text)
class GetTextThread(threading.Thread):
    def run (self):
        get_text()
def get_text(): #получам сообщение от клиента
    global text
    while True:
        conn, addr = s.accept()
        text = conn.recv(1448)
        conn.close()
        #создаем новый поток для вывода окна с сообщением
        #иначе функция ожидает закрытия окна
        thrd = MyThread()
        thrd.start()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('', 3036))
s.listen(300)
get_text_thread = GetTextThread()
get_text_thread.start()
На всякий случай клиент:
import os, socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 3036))
s.sendall("some info")
s.close()
Моя конфигурация: Python 2.7, Win XP SP3
С wx знаком поверхностно.

GUI » install PyQt4 » Окт. 24, 2012 21:38:39

добрый вечер. я сижу на Ubuntu 10.04. По умолчанию стоит Python 2.6.5. Поставил Python 3.3.0. Объясните пожалуйста как к нему прикрутить модуль PyQt4? Буду очень благодарен

Django » Проблема с редактированием модели с фото » Окт. 24, 2012 21:07:32

Доброго времени суток! Есть модель. В ней есть поле photo
    photo = models.ImageField(upload_to= lambda inst, fname: 'avatars/'+hashlib.md5(str(time.time())).hexdigest()+'.'+re.split('\.',fname)[1][:200], verbose_name=u'Фотография', null=True, blank=True)
Сделал из форму из модели и при отправке формы вызываю form.save(), но когда поле photo оставляю пустым выдает: The ‘photo’ attribute has no file associated with it.
Почему? Если поле то не обязательное.

Python проекты » rename.py небольшая программа для переименовывания файлов » Окт. 23, 2012 01:51:20

Столкнулся однажды с задачей - необходимо из группы архивов извлечь файлы и сложить в одну директорию. Проблема оказалась в одинаковых именах разных файлов, в разных архивах. И тогда я решил написать небольшую программу которая бы помогла мне справиться с этим. Помимо выполнения основной задачи, данная программа писалась также ради дополнительного опыта программирования, использования системы контроля версий Mercurial и хостинга проектов BitBucket.

Исходный код, manual страница с подробным описанием, расположены здесь:

https://bitbucket.org/john_16/rename.py

P.S. По писалось для себя и под себя, но думаю пользоваться может кто угодно, благодаря хорошей man странице с обилием примеров.

Python проекты » NoWiki » Окт. 22, 2012 22:56:49

Есть что-то похожее или может кто делал?

Задача с том чтобы обеспечить хранение структурированных и скорее всего типизированных данных на сервере (чтобы они всем были доступны). Одновременно надо обеспечить постепенную стандартизацию типов данных.

Пример:
тип: фотография:

тип: ПаспДанные

Пользователь 1:
ПаспДанные:{
string Фамилия=Иванов
string Имя=Иван
фотография фас=a.jpeg
}

Пользователь 2,3,4,5:
ПаспДанные:{
int рожденья: 1800
string Фамилия=Иванов
string Имя=Иван
фотография фас=a.jpeg
}

Функция системы - хранит данные и пользователю 1 ненавязчиво советует добавить поле год рожденья поскольку так делает большее число людей или изменить название типа.

Такая система явно не wiki поскольку типы это не просто словесные описания но и результат формального агрегирования более простых компонент.

ps
С питоном связь конечно не прослеживается. Просто думаю что на нем проще реализовать чем на c++ например.

Центр помощи » wordnet » Окт. 22, 2012 15:08:09

Как вывести из WordNet самый длинный синонимический ряд?

Django » Аплоад изображений с ресайзингом » Окт. 18, 2012 10:41:25

День добрый! Пожалуйста посоветуйте как сделать. Суть в том, что надо осуществлять загрузку фотографий на сервер с помощью формы, но чтобы фотки не грузились размером километр на километр, в этой форме должно быть предусмотрено поле с шириной изображения, до которой исходное будет ужиматься. Галерея организована в виде альбомов, каждый альбом принадлежит конкретному пользователю, если быть более точным, то выглядит примерно так

class Album(models.Model):
    name = models.CharField(_('Name'), max_length=100, blank=False, null=False)
    user = models.ForeignKey(User, verbose_name=_('User'), null=True, blank=True, related_name='albums')
    created = models.DateTimeField(_('Created'), auto_now_add=True)
    
    def __unicode__(self):
        return self.name
class Image(models.Model):
    description = models.TextField(verbose_name =_('Description'), blank=True, null=True)
    image = ImageField(verbose_name = _('File'), upload_to=....)
    album = models.ForeignKey('Album', verbose_name=_('Album'), null=False, blank=False, related_name='images')

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

1. Где именно (в каком методе) лучше производить ресайзинг?
2. Как лучше организовать поле для указания ширины, до которой будет ресайзиться изображение?
Про второй вопрос поясню. Это поле можно интегрировать в саму модель, тогда форма на основе этой модели будет автоматически его выводить. Другое дело, что хранить поле с шириной в модели вроде не очень логично, т.к. оно будет использоваться только один раз при обработке загруженного изображения и больше не нужно. Если поле ширины задавать не в модели, то видимо его нужно добавлять в форму. У меня тогда вопрос: как и куда в этом случае передавать значение ширины из формы для выполнения ресайзинга?

3. Для фотографий должны создаваться миниатюры, и тут можно пойти двумя путями. Во-первых можно не предусматривать в модели поле для миниатюр, а вместо этого использовать sorl thumbnail в шаблонах при выводе миниатюр на страницах. Но поскольку все миниатюры должны иметь лишь один размер 120х120 и к каждому фото создаются лишь один раз, то можно для превьюшек предусмотреть в модели дополнительное поле
thumb = ImageField(verbose_name = _('Mini'), upload_to=....)
В этом случае наверное базу будет дёргать меньше, но опять же вопрос: в каком именно месте (методе) размещать процедуру создания миниатюры?

Вот, засыпал вас вопросами,но не пинайте.

Django » django-localeurl » Окт. 17, 2012 18:36:45

Здравствуйте
Настроил переключение языков по документации django-localeurl, все заработало, появились ссылки, только если переключится на EN и пойти далее по ссылкам, то скидывает обратно на RU, код таков:
{% for lang in LANGUAGES %}
                    {% ifequal lang.0 LANGUAGE_CODE %}
                        <a href="#" id="lang_{{ lang.0 }}">{{ lang.1 }}</a>
                    {% else %}
                        <a href="{{ request.path|chlocale:lang.0 }}" id="lang_{{ lang.0 }}_inactive">{{ lang.1 }}</a>
                    {% endifequal %}
                {% endfor %}
В settings прописал все по инструкции, в шаблоне стоит {% load localeurl_tags %}… Куда копнуть подскажите.

Python для экспертов » Не подскажете python либу для Hadoop, которая поддерживает append mode для файлов? » Окт. 15, 2012 15:59:46

Один из них Pydoop не поддерживает, хотя на сайте апача написано, что эту фичу можна активировать, установив в hdfs-site.xml dfs.support.append=true …

Python для новичков » Python-скрипт for OS X (Mac OS) » Окт. 12, 2012 18:34:40

Привет форумчане!!!
Требуется Ваша помощь. Мне необходимо написать скрипт на Python, который будет иметь следующий фунционал:
1) Регистрация времени входа в систему пользователя Mac OS (с последующим сохранением в файл log.txt времени входа и его логина)
2) Регистрация времени когда система переходит в спящий режим (с последующим сохранением в файл log.txt времени “усыпания” у и логина пользователя)
3)Регистрация времени когда система выходит из спящего режима (с последующим сохранением в файл log.txt времени “пробуждения” и логина пользователя)
4) Регистрация времени выхода из системы пользователя Mac OS (с последующим сохранением в файл log.txt времени выхода и его логина).

И если 1й пункт трудностей не взывал, то пункты 2, 3 и 4 - моя головная боль уже несколько дней. Буду благодарен за любую помощь (совет в какую сторону копать, указание на нужные функции, модули, ссылки, примеры и вооще все то, что сможет помочь найти верное решение задачи)

Зараннее благодарен за помощь

Центр помощи » Python-скрипт for OS X (Mac OS) » Окт. 12, 2012 18:33:19

Привет форумчане!!!
Требуется Ваша помощь. Мне необходимо написать скрипт на Python, который будет иметь следующий фунционал:
1) Регистрация времени входа в систему пользователя Mac OS (с последующим сохранением в файл log.txt времени входа и его логина)
2) Регистрация времени когда система переходит в спящий режим (с последующим сохранением в файл log.txt времени “усыпания” у и логина пользователя)
3)Регистрация времени когда система выходит из спящего режима (с последующим сохранением в файл log.txt времени “пробуждения” и логина пользователя)
4) Регистрация времени выхода из системы пользователя Mac OS (с последующим сохранением в файл log.txt времени выхода и его логина).

И если 1й пункт трудностей не взывал, то пункты 2, 3 и 4 - моя головная боль уже несколько дней. Буду благодарен за любую помощь (совет в какую сторону копать, указание на нужные функции, модули, ссылки, примеры и вооще все то, что сможет помочь найти верное решение задачи)

Зараннее благодарен за помощь

Python для новичков » [Решено] Ошибки при urlencode » Окт. 11, 2012 13:29:08

Вот в интерактивном режиме выполняю код:
quote_plus(u'Продажа техно'.encode('utf-8'))
Все ок возвращаеться строка в urlencode формате.
Передаю эту же строку в аргумент ф-ции, в которой есть такой код:
'&'.join(['%s=%s' % (quote_plus(n), quote_plus(v)) for n, v in data])
data список вида:
вылетает исключение:
KeyError: u'\u0414'[
Traceback (most recent call last):
  File "/home/**/Desktop/python/**/**r.py", line 97, in <module>
    u'Василий'.encode('utf-8'))
  File "/home/**/Desktop/python/**/**.py", line 78, in send_post
    self._http_cl.post(post_url, post_data, post_url)
  File "/home/**/Desktop/python/**/http.py", line 244, in post
    self.__postData = '&'.join(['%s=%s' % (quote_plus(n), quote_plus(v)) for n, v in data])
  File "/usr/lib/python2.7/urllib.py", line 1257, in quote_plus
    return quote(s, safe)
  File "/usr/lib/python2.7/urllib.py", line 1250, in quote
    return ''.join(map(quoter, s))
KeyError: u'\u0414'
Как так?
Решение: в другом модуле текст из юникода в utf-8 забыл перевести.

Python для экспертов » Проблемы со Swig » Окт. 9, 2012 20:29:09

Здравствуйте, хотел поэкспериментировать с подключением кода c/c ++ в python-скрипт решил поиграться со swig'ом. Действовал по инструкции :http://habrahabr.ru/post/139790/
Вторым способом (c помощью setup.py), однако после команды:
python setup.py build -cmingw32 в командной строке появляется следующая ошибка

C:\swigwin-2.0.8\Examples\python\my_project>python setup.py build -cmingw32
running build
running build_ext
building ‘_my_module’ extension
swigging my_module.i to my_module_wrap.cpp
C:\swigwin-2.0.8\swig.exe -python -threads -c++ -o my_module_wrap.cpp my_module.
i
creating build
creating build\temp.win32-2.7
creating build\temp.win32-2.7\Release
C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\Python27\include -IC:\Pytho
n27\PC -c my_module_wrap.cpp -o build\temp.win32-2.7\Release\my_module_wrap.o
cc1plus.exe: ю°шсър: unrecognized command line option л-mno-cygwin╗
error: command ‘gcc’ failed with exit status 1

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

попытка собрать с помощью Microsoft Visual C++ Express Edition 2008 так же не увенчалась успехом.

python setup.py build

C:\swigwin-2.0.8\Examples\python\my_project>python setup.py build
running build
running build_ext
building ‘_my_module’ extension
swigging my_module.i to my_module_wrap.cpp
C:\swigwin-2.0.8\swig.exe -python -threads -c++ -o my_module_wrap.cpp my_module.
i
C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W
3 /GS- /DNDEBUG -IC:\Python27\include -IC:\Python27\PC /Tpmy_module_wrap.cpp /Fo
build\temp.win32-2.7\Release\my_module_wrap.obj
my_module_wrap.cpp
my_module_wrap.cpp(3067) : error C3861: ‘echo’: identifier not found
error: command ‘“C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe”’ fa
iled with exit status 2


Python для новичков » cx_freeze » Окт. 9, 2012 13:39:43

Привет.

пытаюсь сделать exe-шник из питонового скрипта

имею такой setup.py

import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == "win32":
    base = "Win32GUI"
setup(  name = "app",
        version = "0.2",
        description = "Test App",
        executables = [Executable("app.py", base=base)])

все необходимые *.py файлы находятся тут же
делаю python setup.py build
переношу код на винду, запускаю и вижу такое
“Программа не умещается в памяти”

в чем проблема может быть?

Python для новичков » Tkinter и модули » Окт. 7, 2012 13:19:41

Господа знающие, возник вопрос)

Допустим, я создаю основной модуль main.py и прописываю в нём простенькое окошко Tkinter`a с текстовым полем и функцией, добавляющей в него текст, например, так:

from Tkinter import *
def main():
    root = Tk() 
    root.geometry('500x400+300+200') # ширина=500, высота=400, x=300, y=200
    text1=Text(root,height=7,width=7,font='Arial 14',wrap=WORD)
    text1.config(state=DISABLED)
    text1.place(x=10, y=10, width=470, height=300)
    scrollbar1 = Scrollbar(root)
    scrollbar1.place(x=480, y=10, width=10, height=300)
    scrollbar1['command'] = text1.yview
    text1['yscrollcommand'] = scrollbar1.set
    def textout(text):
        text1.config(state=NORMAL)
        #text1.delete(1.0, END)
        text1.insert(END, text)
        text1.config(state=DISABLED)
    root.mainloop()
if __name__ == '__main__':
    main()

Далее, я создаю, к примеру, модуль secondary.py с каким-то ещё кодом, импортирую его в main`е и так далее… Но возникает вопрос: как мне из secondary.py вызвать, к примеру, ту же функцию textout, прописанную в main.py?

Python для новичков » Распаковка json в обьект » Окт. 7, 2012 10:52:22

Есть ли в модуле json функц для распаковки json данных в обьект не хэш.
Я начал реализовывать но мне кажется что пишу велосипед, ниже написанный код заточен под конкретный сервис который может отдавать данные в json.
#rez  словарь json обьектов
def load(self, rez):
		if not isnstance(rez, dict):
			raise TypeError('Argument rez mysr have dict type')
		for key, value in rez.items():
			if not hasattr(self, key):
				continue
			if isinstance(value, dict): #Если ключ имеет тип словаря значит грузим в атрибут основного обьекта обьект из массива 
				getattr(self, key).load(value)
			elif isinstance(value, list):
				for item in value:
					
			else:
				setattr(self, key, value)