Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3494 posts.

Флейм » Разыскивается специалист по Zope3 » Май 14, 2013 15:29:38

cабж.. Требуется дописать/пофиксить некоторый функционал интернет-магазина на Zope 3, задачки вобщем-то простецкие, но требуют понимания фреймворка.

Python для новичков » “'module' object has no attribute 'HTTPSConnection'" при использовании pip в virtualenv » Май 14, 2013 08:30:48

Когда я не использую virtualenv, такой ошибки не возникает. Версия virtualenv - 1.9.1. Кто-нибудь сталкивался?

Базы данных » SQLAlchemy hybrid_property » Май 13, 2013 16:10:09

создаю свойство
@hybrid_property
def min_term(self):
        return func.datediff(func.adddate(func.adddate(func.now(), self.min_term_d), text('interval '+self.min_term_m+' month')), func.now())
проблема с функцией text('interval ‘+self.min_term_m+’ month')), нужно чтобы там было
text('interval mytable.min_term_m month'))

Python для экспертов » Запись радио потока в файл  » Май 12, 2013 01:08:15

В общем есть код который стримит онлайн поток. Иногда сервер откуда стримится аудио выключается. Но когда сервер включается снова то скрипт почему то не хочет записывать. Просто тупо сидит в памяти.

Была идея проверять на размер выходного файла. Если он не меняется в течение 1-й минуты - остановить этот скрипт и создать новый mp3-файл. В общем как реализовать

import urllib
import os
target = open('safinat.mp3', "wb")
conn = urllib.urlopen('http://stream2.radiostyle.ru:8002/safinat')
while True:
    target.write(conn.read(1024))

Python для новичков » pyglet анимация » Май 11, 2013 16:00:35

Привет всем! Пытаюсь разобраться с программой которая должна вращать картинку с шаром для боулинга. Код взят с англоязычного сайта.

import pyglet
import time
class SingleImageAnimation(pyglet.window.Window):
    def __init__(self, width=600, height=600):
        pyglet.window.Window.__init__(self,
                                  width=width,
                                  height=height,
                                  resizable = True)
        self.drawableObjects = []
        self.rising = False
        self.ballSprite = None
        self.createDrawableObjects()
        self.adjustWindowSize()
        
    def createDrawableObjects(self):
        ball_img = pyglet.image.load('images/car.png')
        ball_img.anchor_x = ball_img.width / 2
        ball_img.anchor_y = ball_img.height / 2
        self.ballSprite = pyglet.sprite.Sprite(ball_img)
        self.ballSprite.position = (self.ballSprite.width + 100,self.ballSprite.height*2 - 50)
        self.drawableObjects.append(self.ballSprite)
        
        
    def adjustWindowSize(self):
        w = self.ballSprite.width * 3
        h = self.ballSprite.height * 3
        self.width = w
        self.height = h
        
    def moveObjects(self, t):
        if self.ballSprite.y - 100 < 0:
            self.rising = True
        elif self.ballSprite.y > self.ballSprite.height*2 - 50:
            self.rising = False
        if not self.rising:
            self.ballSprite.y -= 5
            self.ballSprite.rotation -= 6
        else:
            self.ballSprite.y += 5
            self.ballSprite.rotation += 5
    def on_draw(self):
        self.clear()
        for d in self.drawableObjects:
            d.draw()
            
win = SingleImageAnimation()
# Set window background color to gray.
pyglet.gl.glClearColor(0.5, 0.5, 0.5, 1)
pyglet.clock.schedule_interval(win.moveObjects, 1.0/20)
pyglet.app.run()

вылетает ошибка

Traceback (most recent call last):
File “CUsers/Администратор/Desktop/Картинки для Pyglet/ogogo.py”, line 47, in <module>
win = SingleImageAnimation()
File “CUsers/Администратор/Desktop/Картинки для Pyglet/ogogo.py”, line 13, in __init__
self.createDrawableObjects()
File “CUsers/Администратор/Desktop/Картинки для Pyglet/ogogo.py”, line 20, in createDrawableObjects
self.ballSprite = pyglet.sprite.Sprite(ball_img)
File “C:\Python33\lib\site-packages\pyglet\sprite.py”, line 225, in __init__
self._texture = img.get_texture()
File “C:\Python33\lib\site-packages\pyglet\image\__init__.py”, line 801, in get_texture
force_rectangle)
File “C:\Python33\lib\site-packages\pyglet\image\__init__.py”, line 792, in create_texture
self.anchor_x, self.anchor_y, 0, None)
File “C:\Python33\lib\site-packages\pyglet\image\__init__.py”, line 969, in blit_to_texture
data)
ctypes.ArgumentError: argument 3: <class ‘TypeError’>: wrong type

GUI » PyQt динамическое добавление элементов в QWidgetTree » Май 9, 2013 22:26:27

Есть список, елементы которого тоже являются списками, которые задаются в виде . Таким образом задается дерево

Необходимо это дерево представить в виде QTreeWidget

Вопрос: возможно ли, и если да то каким образом, добавлять новые элементы в QTreeWidget без объявления их переменных. Иными словами как быть если нужно сделать вот так:
from PyQt4 import QtCore, QtGui
import sys
app = QtGui.QApplication(sys.argv)
QtGui.qApp = app
pointListBox = QtGui.QTreeWidget()
header=QtGui.QTreeWidgetItem(["Tree","First","secondo"])
#...
pointListBox.setHeaderItem(header)   #Another alternative is setHeaderLabels(["Tree","First",...])
root = QtGui.QTreeWidgetItem(pointListBox, ["root"])
A = QtGui.QTreeWidgetItem(root, ["A"])
barA = QtGui.QTreeWidgetItem(A, ["bar", "i", "ii"])
bazA = QtGui.QTreeWidgetItem(A, ["baz", "a", "b"])
pointListBox.show()
sys.exit(app.exec_())

но переменные root, A, barA и т.д. объявить стандартным образом нет возможности т.к. заранее не известен состав дерева

Python для новичков » Как создать XML файл c помощью xml.etree? » Май 9, 2013 10:15:39

пишу так:

import xml.etree.ElementTree as ET

def XML_Out():
rt = ET.Element('Project', attrib={'sd': ‘en’})
ET.SubElement(rt,“s1”)

handle = str(ET.tostring(rt, encoding='utf-8'))
f = open(“MYXML.xml”, ‘w+’)
f.writelines(handle)

XML_Out()

файл получается пустой
как - по человечески?
с парсингом разобрался, а с записью чтото не получается. lxml смотреть пока не хочу.

UPD: разобрался. Даже в мануале по питону толком не обьясняется этот момент. IMHO - по вопросу, доступно:
http://www.effbot.org/zone/element.htm#reading-and-writing-xml-files

Django » Django, celery, список активных задач » Май 8, 2013 18:17:11

Здравствуйте. Нужно сделать следующее:
Есть определенный список долгих задач, которые может поставить на выполнение пользователь, нужно вывести список этих задач и ссылку на активацию и дата последнего выполнения, если задача не запущена, иначе сообщение, что задача выполняется. Для этого мне нужен список активных задач.
Пробовал так:
python manage.py shell
>>> from celery.task.control import inspect
>>> i = inspect()
>>> i.active()
Но во-первых выполняется долго, во-вторых ничего не выводится.
Как можно быстро получить список активных задач в celery и django-celery?

Django » Как правильно выдавать статику на хостинге от webfaction? » Май 7, 2013 17:55:46

Привет.
Мой вопрос для тех кто знаком с хостингом от webfaction.com
У меня есть три сайта которые хостятся на webfaction.
Для каждого сайта (или как у них принято называть сайты - приложения), есть отдельные приложения для выдачи статики.
Например, есть сайт (приложение) - automobile.
Приложение выдающее статику: automobile_static
Второй пример, сайт (приложение) - lodkaseledka
Приложение выдающее статику: lodkaseledka_static
и т.д.
Получается, что на каждое приложение сайта необходимо +1 приложение для выдачи статики.
Как можно сделать (если можно) одно приложение, например media_static и цеплять его ко всем сайтам?
Проблема вот в чём!
Допустим у сайта automobile, есть app “home” который содержит статику.
Я сделаю collectstatic для сайта automobile, и статика “home” скопируется в media_static.
А потом сделаю collectstatic для сайта lodkaseledka, и если там тоже есть app “home”, то получается он затрёт предыдущую папку “home”,
созданную для сайта automobile.

Центр помощи » нужна помощь в корректировке практических заданий по питону deadline 23/05 за оплату » Май 4, 2013 12:23:06

Привет ребята нужна помощь, чтоб подкорректировать практические задание по питону.
так как я с этим языком не сталкивался, то много времени уходит на синтаксис. хотелось чтоб кто-то помог правильно оформить heritage…
Практические занятия по Сетям нижнего слой. Не уверен, что правильно преевел все на французком
ps. в сообщении вложен архив с тем что я уже сделал

Флейм » Хакатон AngelHack при поддержке Google » Апрель 28, 2013 13:02:49

Друзья, в прошлом году я присутствовал на американском хакатоне, который проходил в Сан-Франциско, назывался он AngelHack. Как заявляли в то время организаторы, это самый масштабный хакатон в мире.

Тогда их подход, да и сами ребята, мне очень понравились, поэтому я предложил им провести такой же хакатон в России.
Пару месяцев назад мне позвонил их директор и предложил таки организовать один из этапов хакатона в Москве.

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

AngelHack – это крупнейший в мире хакатон, который пройдет в 30 городах мира и объединит 6,000 разработчиков, дизайнеров и предпринимателей. В рамках хакатона участники общаются, обучаются новым технологиям, весело проводят время, а главное разрабатывают свои инновационные идеи.
Условия:
  • Вы можете прийти с готовой командой.
  • Вы можете прийти без команды, но с идеей. У вас будет возможность собрать свою команду прямо на хакатоне.
  • Вы можете прийти без идеи, но с желанием сделать классный продукт. Вы сможете присоединиться к людям с идеями.
Вы можете использовать любой язык программирования, обычно на хакатоне разрабатывают мобильные приложения или веб-сервисы, дизайн можно подготовить заранее.
У вас будет 2 дня и вся ночь для того, чтобы сделать прототип вашего сервиса и защитить его перед нашими экспертами. В судейский совет войдут бизнес ангелы, представители крупных венчурных фондов, крупные медиа и менторы.
Для вас мы обеспечиваем еду на все 2 дня и ночь, безлимитный Red Bull, кофе, пиво.
Регистрация: http://www.angelhack.ru
Готов ответить на все вопросы в топике или в личку.

P.S. Специально для форумчан я сделал промо-код на скидку, приходите сами, зовите с собой друзей. phphack

Python для новичков » Инициализировать объект в импортированном модуле » Апрель 22, 2013 14:14:52

Помогите разобраться, делаю своё первое малюсенькое приложение в виде packag'а, соответственно есть модуль __init__.py с функцией main, в нём импортирую модуль db.py, где с использованием либы peewee создано несколько классов и методов для работы с mysql:

hostconf_dbname = "database"
hostconf_dbaddr="127.0.0.1"
...
db = MySQLDatabase(hostconf_dbname, host=hostconf_dbaddr, user=hostconf_dbuser, passwd=hostconf_dbpass)
db.connect()
class BaseModel(Model):
    class Meta:
        database = db
В __init__.py тоже есть ряд опций, я хочу все опции вынести в конфигурационный файлик и иметь в проекте объект/модуль с нужными мне переменными (используя ConfigParser)
Т.е. в коде выше использовать что-то вроде: db = MySQLDatabase(conf.hostconf_dbname, host=conf.hostconf_dbaddr, …)

Собственно вопрос - как правильно организовать код? (чтобы в Meta поле database было инициализировано параметром из конфига)
- создать модуль conf, в нём несколько переменных для опций
- в __init__.py сначала распарсить конфиг, инициализировать переменные модуля conf
- и только потом импортировать модуль db
так? не коряво ли получается?


Флейм » нужен python-программист, fulltime, Москва » Апрель 18, 2013 17:11:41

Привет всем!
В крупную интернет-компанию в Москве нужен python-программист с опытом web-разработки и хорошими знаниями Python, SQL.
Компания отличная, условия отличные, зарплаты достойные белые + ДМС, проекты разные.

Если кому интересно - прошу писать в личку


Python проекты » python linux_raid1 » Апрель 18, 2013 11:42:21

Привет.
Прошу глянуть скрипт
git clone git://github.com/fireshell/linux_raid1.git
который создает software raid 1 для linux (пока только centos) и указать на ошибки.
Можно было бы написать все на bash, но python гибче и на нем удобнее парсить.
Вообщем, хотелось бы услышать комментарии, по поводу того, что сделано не верно/ не так/ нужно переделать и т.д.

Флейм » Разыскивается правильный Python back-end разработчик.Харьков.2700+ » Апрель 17, 2013 11:11:40

Зарубежная компания, разрабатывающая семейство популярных продуктов сегмента В2В приглашает на работу
квалифицированного Python разработчика для разработки бэк-энда
• Опыт в разработке ПО от 2х лет
• Хорошее знание Python
• Опыт работы в unix-среде
• mySql

+желательно:
• знание Javascript ( jQuery)



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

Компания предлагает:
-Широкие возможности профессионального развития- вы будете играть ведущую роль в разработке back-end масштабируемых, высоконагруженных проектов
-гибкий график работы
-отличные условия работы в офисном центре высокого класса,3 мин от метро, в центре
-высокая оплата труда(заметно выше чем в других веб-технологиях),
-оплачиваемые отпуска и больничные
-высококлассный технический менеджмент
Что еще? разработка ПО ведется по Agile
Просим присылать развернутое резюме на мейл info@eone.com.ua с пометкой Python developer


Python для экспертов » Сохранение email-сообщения прямо в файл без загрузки в операционную память » Апрель 15, 2013 21:20:49

Необходимо сохранить email-сообщения прямо в eml-файл без промежуточной загрузки в операционную память. В poplib я такой возможности не обнаружил (может и плохо искал).
Интересует такая возможность как для pop так и для imap протоколов.

Django » Общее поле (selectfield) для всех форм внутри одного формсета. » Апрель 15, 2013 12:47:54

Добрый день!

Стоит задача сделать формсет (ModelFormSet) с одним общим полем (селектом).

Модель:
class Request( models.Model ):
    applicant = models.ForeignKey( Employee,
        verbose_name = 'Заявитель')
    service = models.ForeignKey( Service,
        verbose_name = 'Услуга' )
    branch = models.ManyToManyField( Branch, null=True, blank = True,
        verbose_name = 'Подразделения')
    role = models.ForeignKey( Role, null=True, blank = True,
        verbose_name = 'Роль (уровень доступа)' )
    comment = models.ForeignKey( Comment, blank = True, null = True,
        verbose_name = 'Комментарий' )

В частности здесь у всего формсета должен быть один applicant. В итоге в БД должны попасть несколько инстансов этой модели с одним и тем же applicant-ом, но так, чтобы его не нужно было выбирать в каждой из форм, а выбрать только один раз. Как это реализовать?
Документация не помогла…

GUI » Вылет скрипта. » Апрель 14, 2013 10:45:50

Нужна ваша помощь. Скрипт пингует локальную сеть с определенной переодичностью и при появлении нового подключения к сети открывается окно со списком подключенных машин и по таймеру окно автоматически закрывается. Проблема в том что, после третьего появления окна программа вылетает с ошибкой. Причем вылетает из разных ОС Win7 и Linux. Думаю, что проблема связана с моим кодом графического интерфейса WX модуля.
Код ошибки в винде:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: python.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 4f84a524
Имя модуля с ошибкой: wxmsw28uh_core_vc.dll
Версия модуля с ошибкой: 2.8.12.1
Отметка времени модуля с ошибкой: 4e21188a
Код исключения: c0000005
Смещение исключения: 00000000001129d3
Версия ОС: 6.1.7601.2.1.0.256.1


В линуксе, в консоли следующее сообщение:
Segmentation fault (core dumped)
------------------
(program exited with code: 139)
Press return to continue


Код скрипта, упрощенный, но рабочий вариант:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import os, ipaddr, wx
if os.name == 'nt': import subprocess
from time import sleep
class TextFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, size=(80, 200),
            style=(wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.SIMPLE_BORDER)))
        panel = wx.Panel(self, -1, style=wx.NO_BORDER)
        panel.SetBackgroundColour(wx.BLACK)
        panel.SetForegroundColour(wx.GREEN)
        my_text = ''
        for item in online:
            my_text = my_text + item + '\n'
        basicLabel = wx.StaticText(panel, -1, my_text)
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)
        self.timer.Start(10000)
     
    def OnTimer(self, evt):
        self.Close(True)
def StartGui():
    app = wx.PySimpleApp()
    frame = TextFrame()
    frame.Show()
    app.MainLoop()
my_net = ipaddr.IPv4Network('192.168.1.0/28')
my_ip = '192.168.1.2'
buf = []
while True:
    online = []
    for cur_ip in my_net.iterhosts():
        cur_ip = str(cur_ip)
        if my_ip != cur_ip:
            if os.name == 'nt':
                ping = subprocess.Popen(["ping", '-n', '1', cur_ip], stdout = subprocess.PIPE,
                                                                                    stderr = subprocess.PIPE)
                ans, error = ping.communicate()
                if 'TTL=' in ans: online.append(cur_ip)
            else:
                p = os.popen('ping -c 1 ' + cur_ip)
                ans = p.read()
                p.close()
                if 'ttl=' in ans: online.append(cur_ip)
    a = [new_ip for new_ip in online if new_ip not in buf]
    buf = online
    if a: StartGui()

GUI » Сделать окно внешнего приложения активным (Windows) » Апрель 14, 2013 04:11:45

Есть такой код:
win32gui.SetForegroundWindow(program[0])
win32gui.SetActiveWindow(program[0])
Мне необходимо переключиться на определенное окно внешнего приложения. SetForegroundWindow выводит нужное окно на первый план (это работает), а SetActiveWindow, по идее, должно делать окно активным, но почему-то не работает. Почему?

Полный код:
def make_window_active(my_title):
        if sys_type=='win':
                toplist = []
                winlist = []
                def enum_callback(hwnd, results):
                        winlist.append((hwnd, win32gui.GetWindowText(hwnd)))
                win32gui.EnumWindows(enum_callback, toplist)
                program = [(hwnd, title) for hwnd, title in winlist if my_title in title.lower()]
                # just grab the first window that matches
                if len(program)>=1:
                        program = program[0]
                        # use the window handle to set focus
                        win32gui.SetForegroundWindow(program[0])
                        win32gui.SetActiveWindow(program[0])
Код предназначен для вычисления окна с определенным текстом в заголовке и для того, чтобы сделать это окно активным. Работает все, кроме SetActiveWindow.