Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3495 posts.

Python для новичков » pygame спрайты, анимация » Фев. 25, 2012 10:25:49

Прощу направить меня в нужное русло или хотя бы намекнуть что делать дальше
http://pastebin.com/MJNeL67f

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

спасибо за внимание

Python для новичков » Низкоуровневый ввод-вывод » Фев. 25, 2012 07:36:30

Подскажите новичку, где почитать про низкоуровневый ввод-вывод через LPT, COM и USB порты в программах на Python 3.
Что-то в известных книгах не нашел.

P.S. И что, неужели никто не занимался программированием связи с объектами через USB (COM). С тем же arduino, например?

Python для новичков » py2exe strip() » Фев. 23, 2012 21:28:11

Ребята. Не работает ввод с клавиатуры, py2exe.
    string2 = u"Введите login: "
login = raw_input(string2).strip()
EOFError: EOF when reading a line

Центр помощи » Где найти программиста на удаленку » Фев. 22, 2012 15:41:31

Даже не знаю в какой раздел эту тему написать.
Мне нужен программист с опытом для поддержки сайта.
Задач не много, но периодически возникают.
Сайт организации и постоянной посещаемостью.
Желающие пишите в личку или мне на почту radiy77@mail.ru

Python для экспертов » Требуется разработчик на Python » Фев. 22, 2012 11:26:05

Здравствуйте! К сожалению, регистрация на www.python.su не работает, и нет возможности написать в раздел http://python.su/job/

В компании “ЭргоСОЛО”(www.ergosolo.ru, Москва) открывается вакансия программиста на Python.

Обязанности:
• Разработка программного обеспечения.

Требования:
• Пол: мужской.
• Знание языка Python и практический опыт программирования на нем.
• Знание и практический опыт применения ООП.
• Опыт разработки серверной части веб-приложений при помощи любого веб-фреймворка на Python или без оного.
• Знание веб-технологий, протоколов и принципов работы web (HTML, XML, XSLT, CSS, JavaScript, JQuery, Ajax, JSON).
• Опыт работы с SQL, написание SQL-запросов, их оптимизация.

Пожелания:
• Понимание основ многопоточного программирования и знание объектов синхронизации.
• Опыт промышленного программирования на Python.
• Опыт разработки веб-интерфейсов (XML + XSLT + CSS) .
• Знание протоколов и технологий разработки веб-приложений реального времени будет плюсом (PUSH, Cometd, Twisted) .
• Опыт работы с БД PostgreSQL.
• Владение слепым десятипальцевым методом набора текста (возможно бесплатное обучение после собеседования).

Условия:
• 5 минут от м. Рижская‚ ул. Сущевский вал‚ дом 64.
• Открывается новая должность‚ испытательный срок 2 месяца.
• Полный рабочий день (5/2).
• Оклад 40000-60000 руб. в месяц.

Контакты:
sokolnikov@ergosolo.ru
• (495) 9958295 (круглосуточно)

Web » клиентский сертификат » Фев. 21, 2012 18:19:11

Здравствуйте. Есть wsgi-приложение, работающее на PythonPaste Сервер работает по HTTPS. Есть ли какая-то возможность, например, используя pyOpenSSL в самом приложении получить клиентский сертификат, переданный в wsgi-приложение?

Например, запрос выглядит так curl -k -v –cert some_file.pem https://127.0.0.1:8082

Собственно внутри wsgi-приложения необходимо получить содержимое клиентского сертификата (для дальнейшей пересылки по другому URL-у)
, как правильно это сделать и возможно ли это вообще?

Python для новичков » This Python has API version 1012 » Фев. 21, 2012 10:11:39

Здравствуйте. Несколько вопросов.
1 - Откуда взялся номер 1012 если питон стоит 2.6
2 - Как его проапгрейдить? так как у меня несоответствие модулей и нужно 1013
3 - Как мне найти путь к этой версии api
4 - Как вообще узнать что за api

Django » django admin + https » Фев. 20, 2012 15:39:13

У меня django-приложение работает через nginx + uwsgi
Для теста моздал пустой проет джанго, включил только админку и добавил одно представление, которое возбуждает исключение, чтобы посмотреть состояние переменных.

Конфиг nginx:
worker_processes  1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;
access_log logs/access.log;

server {
listen 443;
server_name localhost;

ssl on;
ssl_certificate ssl/cert.pem;
ssl_certificate_key ssl/cert.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

location / {
uwsgi_pass unix:///tmp/uwsgi.sock;
include uwsgi_params;
}

location /static/ {
root /www/mysite;
}
}

}
конфиг uwsgi:
<uwsgi>
<pythonpath>/www/mysite</pythonpath>
<module>webapp</module>
<socket>/tmp/uwsgi.sock</socket>
<process>1</process>
<master/>
<enable-threads/>
<uid>80</uid>
<gid>80</gid>
<pidfile>/var/run/uwsgi.pid</pidfile>
</uwsgi>
webapp.py такого содержания:
# -*- coding: utf-8 -*-

import sys, os
import django.core.handlers.wsgi

sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)) + "/mysite")

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

application = django.core.handlers.wsgi.WSGIHandler()
Веб-сервер работает через https
Суть проблемы в том, что после любого post-запроса в админке меня перекидывает на http
Например добавляю нового пользователя и меня после добавления перекидывает на http://domain/admin/auth/user/3/

Если возбудить исключение на гланой странице, в META есть следующее:
wsgi.url_scheme 	'http'
SERVER_PROTOCOL 'HTTP/1.1'
Меня смущает wsgi.url_scheme, почему там http а ее https ?
В общем как заставить админку работать корректно через https?


В архиве полный проект (минимальный джанго-проект): http://zalil.ru/32743917/232b9271.4f4300e0/mysite.tar

Python для экспертов » Сервер отправки писем не через smtp » Фев. 16, 2012 18:11:44

Я не знал где создавать эту тему поэтому решил создать здесь. Учу питон не так давно и тут мне пришла в голову написать спам бот для ответов маил, так как прочитав в интернете они халатно относятся к информации о пользователях.


#!/usr/bin/python

import os
import re
import smtplib
from email.MIMEText import MIMEText
import time
import urllib

############################
# Fill the next parameters #
############################

# SMTP login
smtp_address = “d91y0k7s@mail.ru
# SMTP password
smtp_password = “пароль”
# Email topic
email_topic = “Topic”
# Mail body
mail_body = “спам сообщение”
############################

usedEmails =
num = 0

while True:
u = urllib.urlopen("http://otvet.mail.ru/it/“)
page = u.read()

emailPattern = r”+@+\.+“
patternRe = re.compile(emailPattern)

for address in patternRe.findall(page):
if not address in usedEmails:
num = num + 1
msg = MIMEText(mail_body + address, ”“, ”utf-8")
msg = smtp_address
msg = address
msg = email_topic
s = smtplib.SMTP()
s.sendmail(smtp_address, address, msg.as_string)
s.close()
print(num, address)
usedEmails.append(address)
time.sleep(25)
вот сам код программы проблема вот в чем: изначально здесь были сервера рассылки mail.ru но после отправки 35 писем просто вырубалось немного почитал об сервера отправки и узнал что в питоне есть сервер рассылки писем свой , я решил его использовать . Но после изменения программного кода у меня перестала программа запускаться вообще . Помогите пожалуйста , зареннее благодарю . И сразу извиняюсь за свою тему.
Надеюсь на ваше понимание и помощь мне.

Python для новичков » Взаимодействие дочернего и родительского фрейма » Фев. 16, 2012 17:33:03

Доброго времени суток!!! Подскажите пожалуйста, такой вопрос. Есть два фрейма: основной и дочерний. Дочерний вызывается из основного при выполнения события “нажатия кнопки”.

from secondFrameModul import secondFrame

class Frame(gui.frame):
def __init__(self, parent):
gui.frame.__init__(self, parent)

def onBtnStart(self,event):
self.secondFrame=secordFrame(None)
self.secondFrame.Show()

В дочернем фрейме после генерируется значение, которое после закрытия этого фрейма должно появиться
в wxTextCtrl. на основном фрейме.

class secondFrame(gui2.secondframe):
def __init__(self, parent):
gui2.secondframe.__init__(self, parent)

def onBtnClose(self,event):
self.Frame.окно.SetValue('Value')
self.Close()

Как импортировать значения “окно” из Frame в secondFrame

Python для новичков » Несколько вопросов по классам, методам, архитектуре программ. » Фев. 16, 2012 17:25:59

Добрый день.
Вот возникли вопросы, решил узнать как люди делают, чем руководствуются.
1. Чем вы руководствуетесь, когда решаете нужен ли новый класс. Разбиваете на логические элементы или отделяете логику от графики?
Правильный ли вариант описывать весь GUI отдельным модулем, классами, а потом использовать импорт?
Я не использую при создании GUI редакторов, пишу на pyGTK и соответственно код получается длинным и часто присутствует множество объектов. Из этого второй вопрос.
2. Допустим программа содержит однотипные (вернее похожие) части, как то диалоговые окна, модальные окна, всплывающие подсказки наполненные различным содержимым. Стоит ли использовать универсальные классы и наполнять их нужными элементами или писать для каждого момента свой класс/метод?
3. Что вы делаете когда класс получается объёмным (по количеству кода)? Ниже пример.
class Area:
def __init__(self):
self.x = 10
self.y = 10
self.obj = None
self.value_delete = False # для проверки при удалении объекта/метки
self.dictionary_obj = {} # Словарь для объектов (изображений) в Event Box
self.dictionary_lbl = {} # Словарь для объектов (меток) в Event Box
self.dictionary_handler_id = {} # Словарь для блокировки сигналов
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_resizable(False)
self.window.set_title('Редактирование')

screen = gtk.gdk.Screen()

self.window.set_size_request(screen.get_width(), screen.get_height())
self.window.fullscreen()
# self.window.maximize()
self.window.connect("destroy", lambda w: gtk.main_quit())
self.window.connect("key-press-event", self.keyboard_event)


self.t = gtk.Table(100, 100, True)
self.fixed = gtk.Fixed()
self.t.attach(self.fixed, 0,100,5,100)
self.window.add(self.t)


self.menu_items = (
( "/_Меню", None, None, 0, "<Branch>" ),
( "/Меню/Создать объект", "<control>N", self.great_obj, 0, None ),
( "/Меню/Создать метку", "<control>L", self.great_lbl, 0, None ),
# ( "/Меню/Сохранить", None, None, 0, None ),
( "/Меню/sep1", None, None, 0, "<Separator>" ),
( "/Меню/Выход", "<control>Q", gtk.main_quit, 0, None ),
( "/_Правка", None, None, 0, "<Branch>" ),
( "/Правка/Редактировать объект", None, self.edit_obj, 0, None ),
( "/Правка/Редактировать метку", None, self.edit_lbl, 0, None ),
( "/Правка/Удалить объект", None, self.delete_obj, 0, None ),
( "/Правка/Удалить метку", None, self.delete_lbl, 0, None ),
)

menubar = self.get_main_menu(self.window)

def great_obj(self, w, data): # Создать объект
#Вот здесь ~470 строк кода

def great_lbl(self, w, data): # Создание метки
#Вот здесь ~80 строк кода

def edit_obj(self, w, data): # Редактирование объекта
#Вот здесь ~300 строк кода

def edit_lbl(self, w, data): # Редактирование метки
#Вот здесь ~200 строк кода
Что посоветуете? Создать отдельные классы, а в приведенных методах вызывать их?

И если не сложно киньте пару ссылок на книги про создание архитектуры ПО. Те которые нравятся именно вам.
Спасибо!

Web » Вопрос по python paste » Фев. 16, 2012 06:38:52

Позвольте задать вопрос, как сделать ссылки на статичные файлы, картинки,
css, js файлы из html шаблона. Убил много времени, но не удается понять как
это сделать с помощью paste.

def application(environ, start_response):
status = ‘200 OK’
response_headers =
start_response(status, response_headers)
html = open('static/templates/index.html', ‘rb’).read()
return html

пробовал с помощью urlmap но ничего не вышло
from paste.urlmap import URLMap
from paste.fileapp import FileApp

root_app = URLMap()
root_app = FileApp('/var/www/vhosts/xxx/httpdocs/static/')

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

Python для экспертов » Электронная цифровая подпись » Фев. 15, 2012 21:02:26

Добрый день! Необходимо сделать ЭЦП в django. Пробую сделать это средствами django-digital-signatures. Не подскажите может быть есть другие варианты создания ЭЦП?

Django » Редактирование интерфейса администратора » Фев. 14, 2012 13:53:54

Доброго времени суток! Можно ли настроить интерфейс администратора так, что бы пользователь, состоящий в группе, мог видеть и редактировать пользователей ТОЛЬКО этой группы?

Django » использование тегов включения » Фев. 13, 2012 15:28:49

есть простенький сайт со следующей структурой:
модель “меню 1-го уровня”
модель “меню 2-го уровня” привязанное к 1-му через foreignkey
модель “pages”, привязанное к меню 2-го уровня через foreignkey
Редактирование pages осуществляется через tinymce.
Есть задача: вставить в одну из страниц (с контактной информацией) форму для отправки сообщений.
Вопрос: как это сделать?

Python для новичков » Многопоточное скачивание с фтп (threading + ftputil) » Фев. 13, 2012 12:22:26

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

Вобщем суть проблемы такова. По началу все работает исправно, скачивается лихо и проворно, но все это заканчивается неожиданно.
Host.walk() по идее должен обойти все папки, но он может вдруг закочить это делать на любой, как будто других и нет. Просто выходит из цикла.
Может кто подскажет в чем трабла? или подскажет как это сделать все удобнее и красивее.
import ftputil
from Queue import Queue
import os
import zipfile
from threading import Thread
from time import sleep
import re
from zipfile import ZipFile

class download(Thread):
def __init__(self, path, file, host, queue, tid):
Thread.__init__(self);
self.file = file
self.path = path
self.host = host
self.fullpath = path + "/" + file
self.queue = queue
self.tid = tid
def run(self):
if(os.path.exists(self.fullpath[0:-4]) == False and re.search('readme', self.fullpath) == None):
try:
os.system('wget -N -c -q ftp://free:free@77.246.101.195/' + self.fullpath + ' -P ' + self.path);
if(zipfile.is_zipfile(self.fullpath)):
zip = zipfile.ZipFile(self.fullpath, 'r')
zip.extractall(self.path)
os.remove(self.fullpath)
result = True
rtrn = (self.tid, result, self.file, self.path)
self.queue.put(rtrn)
except:
result = False
rtrn = (self.tid, result, self.file, self.path)
self.queue.put(rtrn)
pass
else:
result = True
rtrn = (self.tid, result, self.file, self.path)
self.queue.put(rtrn)


def new_thread(path, file, host, queue, tid):
thread = download(path, file, host, queue, tid)
thread.start()
return thread


threads = []
queue = Queue()
host = ftputil.FTPHost('77.246.101.195', 'free', 'free')
for (path, dirs, files) in host.walk(host.curdir):
if path != ".":
count = len(files)
try:
os.mkdir(path)
except:
pass
for i in range(min(20, len(files))):
threads.append(new_thread(path, files.pop(), host, queue, i))
for _ in xrange(count):
tid, result, file, path2 = queue.get()
if(result):
if len(files):
print("OK \t" + path + ' remain: ' + str(len((files))))
threads[tid] = new_thread(path, files.pop(), host, queue, tid)
else:
print("NOT OK \t" + path + ' remain: ' + str(len((files))))
threads[tid] = new_thread(path2, file, host, queue, tid)
print('The end.')

Mobile Python » gles canvas » Фев. 13, 2012 10:12:36

>>> import glcanvas>>> glcanvas.GLCanvas(None)Traceback (most recent call last):  File "<console>", line 1, in <module>RuntimeError: eglCreateContext failed [Errno 12291]>>>
вылезла вот такая ошибка… Я предлагаю что это из-за того что у меня стоит s^3. Может всетаки можно сделать так чтобы работал глес?

Python для новичков » массив в изображение » Фев. 13, 2012 06:59:08

День добрый! Пните в нужную сторону…
После обработки массивов данных, преобразования фурье и привода данных к децибелам, получается массив выборок по 1024 значения. Каждая выборка в одном диапазоне от -10 до 50. Требуется вывести данные в графическом виде используя шкалу спектра, например, -10 это синий цвет, 50 это красный и т.о. весь диапазон значений.
Не имея опыта в работе с питоном мечусь от модуля к модулю) Стандартная функция matplotlib. specgram позволяет выполнять данное преобразование но в рамках одной выборки и фиксированных координатах, а задача состоит чтобы весь массив выборок в виде спектрограмм был на одном листе.

GUI » PyGTK: окно пустое при повторном открытии » Фев. 13, 2012 06:52:33

Пишу приложение на PyGTK с использованием интерфейса, созданного в Glade. Столкнулся с проблемой: после первого открытия окна (окна с настройками) всё проходит нормально, а если открыть второй раз, то окно появляется пустым. Собственно, код:

class StatusIcon(gtk.Builder):
def __init__(self):
super(StatusIcon, self).__init__()
self.statusicon = gtk.StatusIcon()
self.statusicon.set_from_file("../../images/favicon.png")
self.statusicon.connect("popup-menu", self.right_click_event)
self.statusicon.set_tooltip("StatusIcon Example")

def right_click_event(self, icon, button, time):
menu = gtk.Menu()
update = gtk.ImageMenuItem(gtk.STOCK_REFRESH)
about = gtk.ImageMenuItem(gtk.STOCK_ABOUT)
settings = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES)
quit = gtk.ImageMenuItem(gtk.STOCK_QUIT)
about.connect("activate", self.show_about_dialog)
settings.connect("activate", self.settings)
quit.connect("activate", gtk.main_quit)
menu.append(settings)
menu.append(update)
menu.append(about)
menu.append(quit)
menu.show_all()
menu.popup(None, None, gtk.status_icon_position_menu, button, time, self.statusicon)

def __getattr__(self, attr):
obj = self.get_object(attr)
if not obj:
raise AttributeError('object %r has no attribute %r' % (self,attr))
setattr(self, attr, obj)
return obj

def settings(self, widget):
self.add_from_file("./1.glade")
self.connect_signals(self)
agroup = gtk.AccelGroup()
self.window1.add_accel_group(agroup)
self.window1.show_all()
Также, наткнулся на ещё несколько проблем: я могу получить информацию из entry, но не могу её изменить (меняю так: entry2.set_text(“text”), а также никак не получается менять spinbutton. Это моё первое GUI-приложение.

Python для новичков » Работа с изображениями. » Фев. 12, 2012 19:28:47

Ситуация следующая: нужно создать графический интерфейс для программки,написанной в среде Python. Исходные данные - картинка. Выходные данные - набор битов с картинки ( т.е. пользователь, допустим, отмечает 2 точки на картинке и биты, попавшие на отрезок между этими двумя точками, выдаются в массив…). Т.е. просто фрейм с картинкой я сделать могу..а вот как вытащить массив с битами из него?