Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3494 posts.

Python для новичков » Ошибка с import pandas » Апрель 1, 2017 16:05:29

Всех приветствую.
Установил Anaconda. Пытаюсь выполнить:
import pandas as pd

Выдает следующую ошибку:
—————————————————————————
AttributeError Traceback (most recent call last)
<ipython-input-12-af55e7023913> in <module>()
—-> 1 import pandas as pd

C:\Anaconda3\lib\site-packages\pandas\__init__.py in <module>()
35
36 # let init-time option registration happen
—> 37 import pandas.core.config_init
38
39 from pandas.core.api import *

C:\Anaconda3\lib\site-packages\pandas\core\config_init.py in <module>()
12 import warnings
13
—> 14 import pandas.core.config as cf
15 from pandas.core.config import (is_int, is_bool, is_text, is_instance_factory,
16 is_one_of_factory, get_default_val,

AttributeError: module ‘pandas’ has no attribute ‘core’


Не подскажете, как победить ошибку?

Центр помощи » Очень нужна помощь с проектом в универе.  » Март 31, 2017 19:24:54

Implement a simple search engine using a vector space retrieval model.

Само задание и формулы в прикрепленном файле.
Я готов компенсировать ваше время ( в разумных пределах).

Django » Выборка из нескольких таблиц » Март 30, 2017 18:19:44

Доброго дня всем

есть таблица Категории и таблица Статьи. Нужно вывести 5 статей по каждой категории.

В таблице Category есть поле slug, которое содержит url категорий. Всего их 3
В таблице Articles есть поле slug_category, которое содержит url категории, к которой относится статья.

Грубо, нужно что-то такое:
category_list = Category.objects.all()
for item in category_list:
articles = Article.objects.filter(slug_category = item.slug)


Никак не могу реализовать подобную выборку. Помогите!
зы: чайник. Пример кодом я понимаю лучше, чем офф документацию.

Центр помощи » Нужен живой программист python в Красноярске » Март 29, 2017 16:32:19

Здравствуйте! Вопрос может и банальный но все же…
Мой сын ( 9 лет) увлекся питоном, решает задачки, уже многое знает и кодит, НО все самостоятельно с переводчиком и в инете, ОЧЕНЬ НУЖНА ПОМОЩЬ ЖИВОГО ПРОГРАММИСТА В ВИДЕ КОНСУЛЬТАЦИЙ И ОТВЕТОВ НА ВОПРОСЫ, а так же в виде наводящих вопросов по темам.
Посоветуйте или помогите юному дарованию, мы верим в добро. Спасибо, папа Якова.

Network » Выдача лога на удалённом компьютере через сокеты » Март 29, 2017 15:47:49

Здравствуйте. Столкнулся со следующей задачей: Есть сервер, к которому через вебсокет подключаются клиенты. Один клиент - отдалённый компьютер, который подключается к серверу при открывании HTML файла. Далее код:


HTML файл, который с помощью JS через сокет подключается к серверному и просто выводит каждое полученное от него сообщение. Код:
 <!DOCTYPE html>
<html>
    <head>
        <title>SGW UI</title>
    </head>
    <body>
        <script>
            var ws = new WebSocket("ws://130.83.40.174:5678/"),
                messages = document.createElement('ul');
            ws.onmessage = function (event) {
                var messages = document.getElementsByTagName('ul')[0],
                    message = document.createElement('li'),
                    content = document.createTextNode(event.data);
                message.appendChild(content);
                messages.appendChild(message);
            };
            document.body.appendChild(messages);
        </script>
    </body>
</html>

Остальные клиенты это баш-скрипты, которые так же подключаются к серверу, передают какое то сообщение и отключаются. Эти сообщения сервер собственно и должен передавать первому браузерному клиенту. Проблемы у меня возникли с написанием сервера. Я нашёл простенькую библиотеку для сокетов. Первая идея была в том, чтобы браузерный клиент подключался первым, его сокетный объект сохранялся и при последующих подключениях клинтов (баш-скрипты) сообщение просто отправлялось сохранённому сокету.

Код сервера:
 #!/usr/bin/python3.4
import asyncio
#!/usr/bin/python3.4
import datetime
import random
import websockets
import sys
browser_client = None
@asyncio.coroutine
def socket_handler(websocket, path):
    global browser_client
    if(browser_client is None):
        browser_client = websocket
    else:
        m = yield from websocket.recv()
        browser_client.send(m)
start_server = websockets.serve(socket_handler, '130.83.40.174', 5678)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()


В итоге это решение не работало, на stackoverflow прочитал, что объекты сокетов сохранять нельзя. Тогда в голову пришёл такой вариант:
 browser_client = None
messages = []
@asyncio.coroutine
def socket_handler(websocket, path):
    global browser_client
    if(browser_client is None):
        while True:
            if(len(messages) > 0):
                msg = messages.pop()
                yield from websocket.send(msg)
    else:
        m = yield from websocket.recv()
        messages.append(m)

Но до обслуживания других клентов кроме браузерного не доходило и сервер находился постоянно в while цикле первого клиента, видимо я не до конца понимаю суть @asyncio.coroutine.

Ну и код с которым я имитировал других (баш) клиентов:

 #!/usr/bin/env python
import asyncio
import websockets
@asyncio.coroutine
def hello():
    websocket = yield from websockets.connect(u'ws://130.83.40.174:5678')
    name = "Test"
    yield from websocket.send(name)
    yield from websocket.close()
asyncio.get_event_loop().run_until_complete(hello())

В итоге я зашёл в тупик. Был бы признателен, если бы кто нибудь подсказал как можно решить эту задачу именно с сокетами)

П.С. используется версия языка python3.4

Python проекты » Пожалуйста помогите с проектом » Март 29, 2017 13:36:57

Дали на первом курсе сделать проект на Python.
Было решено сделать игру “Найди пару”, но возникла проблема с закрытием обоих картинок в случае их непарности.
Код прилагается.

GUI » Вывод данных из таблицы  » Март 26, 2017 13:57:02

Здравствуйте, помогите дополнить код.
Надо чтобы можно было в ent3 вводить название столбца, а в ent4 значение, и в label6 выводились строки только с подходящими параметрами.
Заранее большое спасибо!
 from tkinter import *
import sqlite3 as lite
import sys
def s(entry):
    xok = str(ent1.get())
    con = lite.connect(xok)
    table_name = entry.get()
    with con:
        cur = con.cursor()
        cur.execute("SELECT * FROM {}".format(table_name.upper()))
        text = ''
        while True:
            row = cur.fetchone()
            if row == None:
                break
            for col in row:
                text += str(col) + " | "
            text += "\n"
        label1["text"] = text
def t(entry):
    NA = str(ent3.get())
    xoook = str(ent4.get())
    xok = str(ent1.get())
    con = lite.connect(xok)
    table_name = entry.get()
    with con:
        cur = con.cursor()
        cur.execute("SELECT * FROM {} WHERE NAME=:id".format(table_name.upper()), {"id": xoook})
        text = ''
        while True:
            row = cur.fetchone()
            if row == None:
                break
            for col in row:
                text += str(col) + " | "
            text += "\n"
        label6["text"] = text
root=Tk()
root.title("Работа с базой данных")
label = Label(root, text="Название базы данных(с расширением):", font= "Arial 26")
label.grid(row=0, column=0, columnspan=4)
ent1 = Entry(root, font= "Arial 20")
ent1.grid(row=1, column=0, columnspan=4)
labe2 = Label(root, text="Название таблицы(без расширением):", font= "Arial 26")
labe2.grid(row=2, column=0, columnspan=4)
ent2 = Entry(root, font= "Arial 20")
ent2.grid(row=3, column=0, columnspan=4)
btn = Button(root, text="OK", font= "Arial 30", bg="red", command = lambda: s(ent2))
btn.grid(row=4, column=0, columnspan=4)
label1 = Label(root)
label1.grid(row=5, column=0, columnspan=4)
labe3 = Label(root, text="Показать строку", font= "Arial 30")
labe3.grid(row=6, column=0, columnspan=4)
labe4 = Label(root, text="где в столбце(название столбца):", font= "Arial 20")
labe4.grid(row=7, column=0, columnspan=4)
ent3 = Entry(root, font= "Arial 20")
ent3.grid(row=8, column=0, columnspan=4)
labe5 = Label(root, text="есть значение:", font= "Arial 20")
labe5.grid(row=9, column=0, columnspan=4)
ent4 = Entry(root, font= "Arial 20")
ent4.grid(row=10, column=0, columnspan=4)
btn2 = Button(root, text="OK", font= "Arial 30", bg="red", command = lambda: t(ent2))
btn2.grid(row=11, column=0, columnspan=4)
label6 = Label(root)
label6.grid(row=12, column=0, columnspan=4)
root.mainloop()

Network » Нужна помощ в парсинге поисковой выдачи bing » Март 25, 2017 22:01:14

Всем доброго времени.
Запоролся на таком вопросе, как определение доступных для парсинга страниц поисковой выдачи.
Постараюсь пояснить. Есть такой код.
 requests.get(query, headers=headers, timeout=3).text
Все запросы разные, у каждого запроса разное количество страниц результата. Каким образом можно узнать, сколько страниц выдачи доступно для обхода?
1,2,3,4 или больше?
query = 'http://www.bing.com/search?q=games'

Python для новичков » Крестики нолики 3x3 с Numpy » Март 23, 2017 09:26:38

Добрый день,
Есть задача:
Дан массив numpy 3x3, который представляет собой поле для игры в крестики-нолики. Массив целочисленный. Незаполненные поля обозначены 0, крестики – 1, нолики – 2.
Вам предстоит сделать такой ход за нолики, чтобы не дать противнику выиграть на следующем ходу.
Пример:
array([,
,
])
Правильный вывод:
[

]
Пробую сделать так (lst - исходный массив)
import numpy as np, sys
def step (arr):
if 0 in arr and 2 not in arr and sum(arr) == 2:
arr = 2
return arr

for i in range (3):
step(lst)
step(lst)
step(lst.diagonal())
print (lst)

Получаю ошибку при вызове процедуры для диагонали:
ValueError: assignment destination is read-only.
Для строк и столбцов работает.
Как решить эту проблему?

Python для новичков » Инверсия маcсива » Март 22, 2017 20:13:13

Помогите, пожалуйста, задали задачку в универе, ничего толком не учили еще, а вот такое надо сделать:
В этом задании на вход подается матрица из 1000 пользователями и 5 фильмами.
Ниже вы должны ввести количество относительных инверсий для двух указанных пользователей. Это и будет оценкой того, насколько кинематографические вкусы двух пользователей подобны. Напоминаем, номера пользователей индексируются с 1.

Для проверки кода:
Количество относительных инверсий между пользователями 452 и 100. (правильный ответ 7)
Количество относительных инверсий между пользователями 863 и 29. (ответ 0)
Это мы проходим в теме сортировка слиянием, метод декомпозици, рекуррентные соотношения.

Python для экспертов » Подскажите модуль для Flask rest api и sqlalchemy. » Март 21, 2017 14:07:20

В общем мне много то не надо, нужен только GET /items/, чтобы поля из модели sqlalchemy генерировались автоматически, чтобы можно добавлять кастомные поля и, наконец, чтобы можно было самому формировать запросы.
Я пересмотрел: flask-restless, flask-restfull, python-eve, flask-api, flask-potion И ни в одном из пакетов не нашел всех эти возможностей, которые мне требуются. Хотя слышал, что на flask очень удобно как раз таки делать REST Api. То есть для примера, есть у меня следующий объект

 from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Author(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Unicode)
class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(), nullable=False)
    author_id = db.Column(Integer, ForeignKey('author_types.id'))
    year_published = db.Column(db.Integer)

И по запросу GET /books я хочу получать список всех книг с полями id, title, year_published, а также полем, например, century(век - XX или XXI). И получить мне надо только те книги у которых имя автора начинается на “А”, соответственно дефолтный запрос Book.query.all() тут не подходит. Подскажите, пожалуйста, как лучше это сделать или дайте ссылки на примеры.

Django » annotate ? » Март 21, 2017 05:15:07

Отправляю данные моделей (queryset) в javascript слой через ajax. Естественно (для меня), на уровне javascript более трудоемко преобразовывать в нужный строковый формат.
Есть задача: поля datetime (c timezone) “пропускать” через шаблон еще на уровне views
Посмотрел в сторону annotate, долго проверял некоторые варианты - но так и не заработало.

 def DateTimeString(vardatetime,request):
    tz = request.session["tz"]
    t = template.Template("""
        {% load tz %}
        {% timezone tz %}
        <td>{{ vardatetime|date:"d.m.Y H:i e" }}</td>
        {% endtimezone %}
    """)
    c = template.Context({'vardatetime': vardatetime, 'tz':tz})
    return t.render(c)
                data = {
                    "model":d.device_scheme.name,
                    "address":d.address.city.name,
                    "status":d.status,
                    "company":d.company.name,
                    "ports":serializers.serialize('json', d.devices_ports_set.all().annotate(datetime_str=DateTimeString(
                        F("datetime_update"),request))
                    ),
                    "slots":serializers.serialize('json', d.device_link.all()),
                    "combo":serializers.serialize('json', d.devices_combo_set.all()),
                    "properties":serializers.serialize('json', d.devices_properties_set.all()),
                }
                response_data = {"result": data}

Не совсем понимаю как правильно решить эту задачу.
Возможно annotate вообще не подходит для этого?

Python для новичков » pyglet не проигрывает видео  » Март 16, 2017 21:59:44

pyglet не проигрывает видео, просто окно и черный фон в нем . Код ниже может кто сталкивался подскажет что то


import pyglet
window = pyglet.window.Window(width=1000, height=500)
player=pyglet.media.Player()
source=pyglet.media.load(“Film.avi”)
player.queue(source)
player.play()
@window.event
def on_draw():
window.clear()
player.get_texture().blit(0,0)
pyglet.app.run()

Флейм » [300$] py3, gevent, requests: 6-8 сайтов до 2017-03-26 » Март 16, 2017 17:51:51

Заранее извиняюсь перед модераторами, если здесь для объявлений не место, укажите раздел и я перенесу сообщение.

Нужна помощь в разработке парсеров на 6-8 сайтов до конца следующей недели (2017-03-26).

Задача: будет предоставлен API в соответствии с которым нужно разработать по одному Python модулю на один сайт. Так же будет предоставлена рыба фреймворка в виде пакета Python, а разрабатываемые модули буду частью этого пакета. Сам “фреймворк” также может подвергаться изменениям без нарушения совместимости.

Так же нужно учитывать, что разработка будет вестись одновременно несколькими разработчиками с объединением кода в будущем, поэтому сильное отклонение от заданных начальных ограничений не приветствуется. Выбор сторонних зависимостей должен заранее согласовываться. Код будет приниматься мной в виде sdist и я так же буду заниматься его развёртыванием.

Что будем парсить. Собирать будем следующие данные о заданных в виде прямых ссылок товаров с интернет магазинов: цена, стоимость доставки, наличие на складе, все отзывы (тексты, рейтинги, pros/cons и т.д.). Сайты будут европейские и американские, придётся подтянуть свой фр. и испанский, например.

Модули будут разрабатываться в рамках пакета и исполняться как сервер. Взаимодействие потребителя с этим сервером будет происходить через execnet. Никаких планировщиков и никакого кеша не предусмотрено: запрос-ответ. В случае с ревью запрос может быть на полный сбор или только для последних (ревью могут исчисляться тысячами).

Разработка ведётся под Python 3 (3.4/3.5).
Другие значимые зависимости: gevent, requests и lxml.
Какие-либо сторонние фреймворки не используются.

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

По итогам этого короткого марафона может быть предложено постоянное сотрудничество, нужно будет привести в порядок эти и ещё около 30 разношёрстных парсеров (одни на Twisted, другие на Mechanize) и поддерживать их до старости.

Детали (рыба пакета, API для реализации и пр.) после начала работы.

Цена вопроса: 50$ за сайт.

..bw

Флейм » Нужно написать софт на python » Март 13, 2017 18:31:09

Доброго времени суток, ищу человека который смог бы написать программу на подобие SIPVicious если кому то интересно пожалуйста оставьте почту или джаббер для более подробного описания софта который требуется.

Python для новичков » Python turtle » Март 12, 2017 05:50:36

Привет всем!
Подскажите пожалуйста как в Python turtle написать строку, затем стереть эту строку (именно строку, а не все изображение) и на ее месте написать новую.

Центр помощи » VK api обработка сообщений » Март 3, 2017 16:14:13

Вот я получил ответ.

 {"ts":1820350874,"updates":[­[4,1619489,561,123456,1464958914," ... ","hello", {"attach1_type":"photo","attach1":"123456_414233177", "attach2_type":"audio","attach2":"123456_456239018"}]]}

Как мне указать интерпретатору, откуда именно ему брать текст? С фото и аудио понятно, есть ключ и есть значение. А с текстом не так.

Python для новичков » проблема с django » Фев. 24, 2017 15:13:43

здравствуйте.
пытаюсь создать первый проект на джанго выдает вот такую ошибку при вызове runserver

GUI » PyQt5 | Множественное наследование и __new__ » Фев. 24, 2017 14:34:56

Всем привет.
Делаю небольшую прогу на PyQt5, так она выглядит на текущий момент:

Застрял на этапе создания виджетов для вкладок QTabWidget.
Если вручную указать, что для открытия файлов формата xml используется класс XML, то все работает нормально, но интересно реализовать класс, который самостоятельно выбирает нужный класс-наследник, исходя из расширения файла.

Сам класс:
 class WidgetHandler:
    def __new__(cls, path, parent=None):
        ext = os.path.splitext(path)[1].replace('.', '')
        for subclass in cls.__subclasses__():
            if subclass.__name__.lower() == ext:
                return super().__new__(subclass)
        raise NotImplementedError
    def __init__(self, parent, path):
        self._path = path
        self._parent = parent
        self._is_modified = False  # Флаг для проверки был ли изменен файл
        self._create()
    def _create(self):
        raise NotImplementedError
    def _save(self):
        raise NotImplementedError
    def _close(self):
        raise NotImplementedError
    def save(self) -> None:
        if self._is_modified:
            self._save()
            self._is_modified = False
    def close(self) -> None:
        if self._is_modified:
            pass  # TODO Запрос сохранения
        self._close()

Его наследник:
 class XML(WidgetHandler, QTreeView):
    def _create(self):
        self.setParent(self._parent)
        model = DomModel(self._path)
        # model.dataChanged.connect(lambda: print('Data Changed'))
        self.setModel(model)
        self.expandAll()
        self.setRootIsDecorated(False)
        self.setItemsExpandable(False)
        delegate = XMLDelegate()
        self.setItemDelegate(delegate)
    def _save(self):
        pass
    def _close(self):
        pass
Но в результате вместо виджета получаю ошибку: “object.__new__(XML) is not safe, use QTreeView.__new__()”
Подскажите, пожалуйста, где я ошибся.

Python для новичков » async функции » Фев. 24, 2017 03:36:06

Привет.

Постигаю асинхронный фукционал в третьей версии. Хочу задействовть в следующей задаче:
есть таск, который выполняет 3 функции: парсинг данных, его обработка и сохранение в базу.
 def task(input_data):
    for i in input_data:
        data = parse(i)
        processed = process(data)
        save(processed)
Думаю сделать асинхронный парсинг и обработку на процессах. Собирать все в память, потом отправлять на процессинг не вариант. Наверно лучше через callback? Подскажите как лучше реализовать? Желательно с примерами. Спасибо.