Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/HatКод вбрасывать в тред через https://ideone.com/Прошлый: >>732347 (OP)
Поясните нуфагу как канонично делать ограничения на значения переменной? Вот есть у меня в объекте поле которое не может быть меньше 0 и больше 100, есть метод который изменяет его путем прибавления, там же сразу обычным IF делается проверка и если значение вышло за диапазон то оно приравнивается к крайнему значению. Все правильно делаю или есть более разумный путь?
>>738712Да полностью пиши если что-то мутноеchecked_your_mom_ebal_status и тд, легче понять что делает - быстрее переписывать
>>738712Сорри, перепутал с парнем который в прошлом треде переменные называть не умел.Понятнее тебе структура - лучше. Этого и придерживайся.
>>738712Да, только лучше использовать properties https://docs.python.org/3/library/functions.html#property и делать проверку в "геттерах/сеттерах".
>>738720Ок, спасибо, как раз это и искал. А в чем фишка иметь гетеры в языке который не котирует приватные поля?
>>738720Так вот что за мразь всем property советует. Худшее, что есть в питоне, имхо. Дергаешь его, думаешь что обычное поле класса, а эта мразь тебе то исключение выкинет, то SQL-запрос отошлет, то еще какое-нибудь неожиданное поведение устроит. Хуже только создание полей у объекта извне.
На работу со знаниями пайтона по-прежнему не устроиться?
Аноны, не знаю, по адресу ли обращаюсь. Давно мечтаю втиснуться в open source, но нет ни знаний, ни опыта в этом. Хотел бы покодить на питоне, просто потому что на работе на нем пишу. Может посоветуете какие-нибудь open source проекты, в которые можно покоммитить, но не очень востребованные, чтобы меня оттуда ссаными тряпками не погнали? Читать маны не проблема, но у меня не очень большой опыт разработки "не для себя" и я ссыкло.
>>738741помониторь "дейли топ" репозиториев гитхаба, как правило там как раз мелкое уютное новьё, найди чего по душе и фигачь
>>738737Неосилятор в треде. поведение документировано должно быть
>>738734Для контроля доступа, можно в зависимости от состояния объекта корректировать значения(округлять до какой-то переменной величины, например) или считать количество обращений.>>738737> Так вот что за мразь всем property советует.Я впервые.> Худшее, что есть в питоне, имхо> имхоХорошо что ты это понимаешь.> Дергаешь его, думаешь что обычное поле класса, а эта мразь тебе то исключение выкинет, то SQL-запрос отошлет, то еще какое-нибудь неожиданное поведение устроит. Это проблема гавнокодеров sqlalchemy, а задача описанная выше - идеальное приминение фичи.
>>738762Почему сразу не использовать set_govno вместо проперти? За ним же все равно будет спрятан какой-то атрибут класса.
>>738777Потому что проперти -- это сахарок. Он нужен. Если ты считаешь, что не нужен, то пиши на жс.
>>738777Не знаю истинных причин изобретения фичи но вижу две:1. Унификация обращения к переменной, в жабке какой-нибудь, например, принято делать гетеры и сеттеры для асболютно всех переменных, а сами переменные делать приватными, в питончике же приватности как таковой нет и обращение к переменной обычно идет напрямую, properties же позволяет добавлять дополнительный контроль для переменных и при этом не выбиваться из стиля, ведь странно будет выглядеть если в классе десяток переменных но до одных нужно обращаться вот так, а до других вот эдак, не по дзену это.2. Всегда можно добавить/убрать properties к переменной без переписывания кода который её использует.
>>738738научись долго говорить о питоне, употребляя много умных и непонятных терминов. за это платят деньги. для самой работы достаточно уметь гуглить.
Активность в питонистов в треде заметно упала по сравнению с другими тредами, сразу видно кто деньги зарабатывает.
>>739084Я только планирую, но мне страшно, там какие-то джанги-хуянги, сайты, сложные базы, даже не знаю, через сколько лет смогу взяться за первый реальный заказ.
Посоны, есть ли какая-нибудь нативная питонячая обертка над ssh? Шоб можно было прямо из питончика подключаться к серверам и набирать команды?
>>739088Джанга-то проста.
>>739093Ну, заказы все равно сложные. Я бы пошел и в веб-макаки за еду, но как этому натренироваться, натягивать сайты, вот это все, ума не приложу, где примеры брать.А если чистый кодинг на питоне - то так-то я клепаю проекты для себя. Но людям обычно нужен универсальный боец, чтобы всё сразу умел и много всяких фреймворков. А еще если лажану или застопорюсь - то и некому помочь, на двощах и стеке только на легкие вопросы отвечают.Ох, страшно то как.
>>739092paramikofabric
>>739088От "нуля" в программировании вообще до вполне осмысленного использования питона и джанги у меня ушло 5 месяцев и ~ 17 книжек, при чем 3 месяца я пинал хуй, ленился и занимался очень мало что бы совсем не бросить.Сейчас себе свои сайты для оффлайнового бизнеса сам переписываю.
>>739117Давай свою стори. >~ 17 книжекЧто ты там читал столько?
>>739141Стори писал уже, когда-то. В юности чуть быдлокодил, потом забросил, потом появилось ~ 4 независимых источника дохода, которые можно расширять онлайн. Вот и взялся учить питон для этого. > >~ 17 книжек> Что ты там читал столько?Это разве много? Чем экспериментировать полуосмысленно дешевле сразу какую-то базу по предмету прочитать и уже по ней ориентироватьсяВспоминать список как-то лень, много по начальному уровню что бы окончательно все понять, чуть по Джанго, ML/big data/CV, алгоритмам
>>739153Кстати, как "понять" фреймворк? Ту же джангу, фласк например? Какие материалы по фреймворку изучал до того как впервые сам написал какое-нибудь норм приложение?
>>739183Тащем-то все просто, берешь и пишешь сайты.По Django для начинающих есть хороший учебник на русском - djbook.ru
>>739183Мне понравились: django girls tutorial, официальная хуета вместо туториала, django by example, tango with django и 2 scoops of djangoФласк проще, если хочешь вообще голову фреймворкоподробностями не заморачивать - web2py и bottle, в целом мне бы и их без джанго хватило бы, но как я говорил я обленился до того, что чуть не бросил вовсе кодить, а джанго всё ж для пипец каких ленивых парней, даже не смотря на то, что вкатиться в неё сложнее.
Привет, ребята. Меня заебала текущая унылая работа, хочу вкатиться в айти. Хоть не ради денег, а для фана. Из навыков у меня есть Flask и страшненький прон сайт на нём. CSS я владею хуёво, на javascript и jquery пишу с помощью стаковерфлоу. До этого давно занимался написанием всяких скриптов для своих спаммерских дел. Из прочих скиллов у меня 9 лет админства Linux локалхоста. Кроме прочего я еще и ту олд (29). Если шанс вкатиться с таким раскладом? Дело происходит в ДС-2.
>>739183Что по методике рекомендую просто брать и проходить все эти туториалы-книги и сам вникнешь что к чему
>>739205Да можно и в 40 вкатиться, только не слушай местных долбоёбов и делай что хочешь.
Посоны, что делать, везде пишут что import для пидоров но как тогда тянуть данные из других файлов?
>>739222Импортируй то, что тебе нужно. > from ass import shit Если есть мысль что совпадет по пространству имен дописывай > as shitfrommyass
>>739186>есть хороший учебник на русском - djbook.ruкакой-то пидор первел старую книжку а сам даже на вопрос про кодировки не знает что сказать.все эти книжки про джанго стротся по одному сценарию - вот я автор великий програмист, я делаю это так-то и так-то, и ты так делай. в результате предлагается просто заучить рецепт.
>>739202>django girls tutorial, официальная хуета вместо туториала, django by example, tango with django и 2 scoops of djangoлолируешь штоле? само по себе джанго очень просто, просто дураки не понимают, что прежде чем учить джанго, надо выучить, что такое сервер, как там все устроено и что как делается. а потом реализовать это на джанго.
>>739353Весь опыт человечества это заучивание рецептов до ты степени, что сможешь их осмысленного миксовать
>>739222не импортируй ничего, копируй код в свой скрипт, будь мужиком блеат
>>739360тогда бы прогресса не было, была бы только линейная эволюция. значит, это не так.
Аноны, а какие задания вам дают на работе? Хочу знать, что меня ждет.
>>739378всегда так делаю
logging пишет в файл только вручную, т.е. надо вручную отлавливать все ошибки и писать? Запускаю flask на встроенном сервере, выводит в консоль все возникающие ошибки, как сделать то же самое только с выводом в файл? Или это сервер gunicorn/uwsgi должен делать?
Анончики, будьте няшами, поделитесь Job Title и Overview для апворка. Сам джуниор, знаю только базовый набор - основные библиотеки, супопарсинг, джанга, немного веба.И еще вопрос - там обязательно прикреплять своё настоящее фото или можно всякое говно, как на отечественных сайтах?
Есть словарь с списками: http://pastebin.com/KvBzfHHtКак получить все заголовки из внутренних списков: "CAT 1.1: Program nameCAT 1.2: Program name...CAT 3.3: Program name"?
>>739419import syssys.stdout = open('говно из консоли.txt', 'w')
>>739438А ты сам пробовал это сделать?
>>739451Да, но как-то не вышло. Пробовал обращаться в цикле:for i in range(len([i[0] for i in root])): print(i,root[3][0])Но выводятся только первые категории всех списков:CAT 1.1, CAT 2.1, CAT 3.1, CAT 4.1
>>739419Почему сразу не покурить доки?https://docs.python.org/2/howto/logging.html>import logging>logging.basicConfig(filename='example.log',level=logging.DEBUG)>>739438Так что ли?>>> print('\n'.join([item[0] for sublist in settings['settings'] for item in sublist if type(item) is list]))CAT 1.1: Program Name TitleCAT 1.2: Program Name For RootCAT 1.3: Program Name For RootCAT 2.1: Program Name TitleCAT 2.2: Program Name For RootCAT 3.1: Program Name TitleCAT 3.2: Program Name For RootCAT 3.3: Program Name For RootCAT 4.1: Program Name TitleCAT 4.2: Program Name For RootCAT 4.3: Program Name For Root
>>739442Почему-то только через переопределение sys.stderr получилось то, что хотел. Всё равно спасибо.
>>739457Да, именно так. :3
Господа, есть ли в питоне вменяемый рэндер html в pdf? Смотрел в сторону xhtml2pdf, пустил слезу, вспоминая великолепный (на фоне xhtml2pdf) MPdf. Есть ли годная альтернатива? Уже два часа испытываю дичайшие боли, и мой пукан скоро будет на луне
>>739457>Почему сразу не покурить доки?Курил, в файл не пишет, но проблему решил по совету другого анона через sys.stderr.
>>739421Ладно, сам уже худо-бедно наклепал. Но поясните таки за фото и скажите, какую почасовую оплату брать для совсем начального уровня.
Ку, аноны, собрал на sx_freeze тестовую прогу, если взброс сделаю, кто-нибудь тестанет ?
Она на x64, интересуют все начиная с win7 до win10, удачность прохода -> запуск на вашем ведре
>>739358Рекомендуй ты тогда, хули. Где выучить сервер + аналоги/как это реализовано с джангой.
>>739503Накати виртуалки, болезный.
>>739489Ладно, поставил минимальные три бакса и хипсторскую аватару с аватаромейкера.
Посоветуйте хостинг, на котором я могу оставить крутиться свой скрипт.
>>739575DO, OpenShift, Heroku, любое другое говно.
сейчас нашел в файлах со старого компа скрипт, посылающий пост-запрос, с датой 12 июля 2011 года! господи, не думал, что это было так давно.
Помогите плиз, не могу разобраться уже пол дня мучаюсь.Иду по книге Think Python RU_v.1.06Дошел до задания где внутри функции вызываются её параметры, и я такой WTF MAN?????def do_twice(f): f() f()Поясните плиз зачем внутри функции вызывать ПАРАМЕТРЫ?До этого только было что вызов функции происходил по её имени, и уже вне её. А тут на тебе кинули в лицо новую форму. Непонимать. Вот пикрелейтед, я там 2е задание не могу сделать. Так запутано ппц.
>>739753def do_twice(f, param): f(param) f(param)
>>739753Потому что параметр f это функция
>>739795Спасибо! Буду думать.>>739801И тут у меня щас такой mindblow, с какой стати просто буква f, которая записана в качестве параметра функции стала самой функцией? Я думал что функция это её do_twice(f) а буква в скобках это её параметр а также переменная для аргумента. Я ошибался?
>>739815Функцию же можно использовать как переменную, тип вычисляет что-то и тут же подставляет в параметры другой функции.
>>739815>Я думал что функция это её do_twice(f) а буква в скобках это её параметр а также переменная для аргумента. Я ошибался?Что?
>>739815https://en.wikipedia.org/wiki/First-class_function
>>739836Похоже, он решил, что функция do_twice должна выполнять саму себя два раза>>739815Нет, функция do_twice выполняет два раза любую функцию, переданную ей параметром f.то есть можно написатьdef lolka():\tprint('lolka')do_twice(lolka)и она два раза выведет 'lolka'.
>>737219Запоздало, но нашел ещё одно решение.
>>739457>if type(item) is list
Анон, есть такой вопрос: как переместить 'scrolledwindow' выше коробки ('box') в категории виджета 'notebook'?Код: http://pastebin.com/9CRGJcQa
>>739903как на пикче
Есть еще что-нибудь по типу Codeacademy чтобы было бесплатно, а то я охуел от цифры в 20к на Курсере за изучения питона.
>>740031udacity
>>740031Дальше книги. Зазубрил основы языка на кодекадеми и можешь уже к чему подробнее переходить, так и должно быть же.
Аноны, а как узнать, что я скрипт запускаю именно в pycharm? Ну например:if in_editor:num = 1else:num = 0
>>739869Нет, он решил что функцию нельзя передавать как параметр в другую функцию
>>740031https://www.hackerrank.com
>>740180ну ты можешь запустить консоль, добавить там переменную окружения типа PYCHARMUSED=trueи запускать pycharm из этой консоли, а в скриптах дергать os.getenv и смотреть есть ли такая переменная или нет
>>740037>>740038>>740247Cпасибо котоны. А вообще кто-нибудь покупал PRO уровень код-академии ? Как он, cтоит того ?
>>740253Проходил курс когда ещё не было PRO. Обычный вводный курс. Сейчас, судя по всему, он мало чем отличается. Не нужен.
Ньюфаг в треде. Как в этом вашем пайтоне графический интерфейс для программ делать? Нагуглил tkinter, но я же охуею в уме прикидывать расположение тех же кнопок по координатам, во всяких Дельфях и Бейсиках, которые мы в школе изучали, для этого дела свой гуй был.
>>740270pyqt5 + qtdesigner
>>740273Да, ксати, gtk-фанатики. У pyqt5 появились колёса под все популярные ОС.
>>740276При чем здесь gtk?
>>740284Ну, тут часто пробегают любители gtk. А это аргумент в пользу qt. Всё же просто.
>>740270>охуею в уме прикидывать расположение тех же кнопокменеджеры размещения же есть
>>740270Ничего, как-то раньше народ верстал целые сайты без превью и лайврелоадов. Напишешь строк 200 CSS и потом молишься чтобы это кривое говно не съехало. А какой там был дебаг с помощью бекраунд колоров на все блочные элементы.
>>740270тогда тебе в бинды на QT
Несколько вопросов. Погроммирование это пара тройка логических операторов, переменных, немного массивов, тульп и хэш таблиц, сверху горстка итераторов и условных циклов? Серьезно чтоли бля, на таком говне все огромные проги построены?Поясните за суть фреймворков. Фреймворк это кучка библиотек? Не пойму тонкой сути слова и его значения
>>740404Погроммирование это пара тройка арифметических и побитовых операций, запись/чтение в ячейку памяти, все остальное Абстракция.Фреймворк это скелет твоей программы, кто-то уже сделал за тебя часто использующиеся вещи.
Как выводить без проблем с кодировкой в виндовую сосноль?
>>740450использовать питон 3
>>740451Его и использую
>>740452
>>740459мне похоже utf-16 нужна. Я просто собираю статистику с твича. В чате кинули свастику. Скрипт упал.
>>740463Попробуй поменять все кодировки в питоне на UTF-16.https://habrahabr.ru/post/117236/поменять шрифт на TrueType в консолиhttp://stackoverflow.com/questions/10764920/utf-16-on-cmd-exe
>>740473Спасибо. Мне, похоже, проще линукс поставить.
>>740478mingw попробуй ещё
>>740285Теперь понял, это обращение было, я сразу твою пунктуацию не распарсил.> А это аргумент в пользу qt.Кроссплатформенность? в Gtk другая ниша, как и в Cocoa или WPF - легкие, нативные и качественные GUI-приложения использующие всё фишки и особенности платформы по полной.
>>738709 (OP)Привет анон. Как подбирать методы? Например, в джава-еклипсе есть подсказки или можно открыть сайт джавы и там есть методы каждого класса и подсказки как их использовать. В питоне тоже есть документация но что-то нихуя не понятно, как ею пользоваться.
>>740594ipythonimport <Tab> - покажет все доступные для импорта модулиClass.<Tab> - все методыClass.method()<Shift+Tab> - входные оргументы, докстрингvar? - описание переменнойmodule.function?? - исходный кодpycharm это тоже все умеет.
>>740602видимо придется pycharm ставить. Вкатывающимся в питон на sublime text не рекомендуется писать?
>>740610sublime это текстовый редактор, лучше уж сразу поставить среду разработки как pycharm, или LiClipse (легковесная Eclipse заточенная под питон), если в эклипс раньше работал не думаю что возникнут проблемы по настройке.
>>740612cпасибо!
>>740615ещё spyder есть. Написан на питоне, открыт для всего. (но pycharm всё равно лучше, если тебе насрать на ограничения community edition)
>>740618spyder кстати мне исходники попортил, все строки написанные не ascii в кракозябры перевел и автоматом сохранил на диск.
>>740618Прошку бесплатно можно получить.
>>738709 (OP)зачем пилить перекат если ничего не обновляется?
>>740555gtk только для гнома стало быть?
>>740673Затем что тред тонет, очевидно.>>740674Да, вне gnu/linux я не стал бы его использовать.
>>740594Давай поебемся) я буду нежно и страстно целовать тебя, делать массаж, гладить твою нежную попку и теребить языком соски. Потом войду в тебя, мы сольемся в единый организм, состоящий из оргазма, наслаждения, похоти, чувств, тишины, тоски по детству, низости первородного греха, голубого неба, ветра в поле, ночного костра..затем я поцелую тебя в лоб, прижму к себе и ты укутаешься в мои объятия, предавшись миру Морфия. Я же включу недосмотренный тайтл и добью оставшиеся 5 серий. Выключив ноутбук, я, ощутив тепло твоего тела и услышав размеренное спокойной дыхание, постараюсь уснуть.
>>740594Лол, я тупо набираю имя объекта в оболочке, ставлю точку и жду всплывающий список с методами и полями. Так и живу.
>>738709 (OP)Помогите с примером из Dive into PythonЕсть: модуль apihelper.py с функцией infohttp://ru.diveintopython.net/apihelper_divein.htmlи скрипт, его использующий :для консоли>>> from apihelper import help>>>info.__doc__>>> li = []>>> info(li)или, как программаfrom apihelper import infoprint info.__doc__li=[]info(li)Traceback (most recent call last): File "<input>", line 4, in <module> File "C:\py.work\apihelper.py", line 7, in info __author__ = "Mark Pilgrim (mark@diveintopython.org)"NameError: global name 'collapse' is not definedкоманда info.__doc__ выводит результат нормально, т.е. модуль импортируется нормально
>>740847Есть предположение, что у тебя табуляция сбилась в файле apihelper.py. Проверь или скинь в ideone.
>>740847откуда у тебя info появилось, называй имена файлов и функции как по книжке
>>740852Я apihelper скачал, а не набивал. Вот в идееhttp://ideone.com/K4R0jF>>740856info это функция в apihelper. Если ты про info.__doc__ то это просто проверка, загружаетс я ли этот модуль.
>>740856fix наверное это разные версии книжки, то есть версия перевода тут более старая. У меня функция называется info.
Анончик, как в GTK 3 заблокировать закрытие окна через connect("delete-event",...)?
>>740874А на ideone сразу вывести результат не хватило мозгов? Все работает.http://ideone.com/Fn3uJn
>>740932твой код, вставленный в новый файл, заработал, а с файлом apihelper из архива примеров - нет. Отличия - после print выражение в скобках, а там нет.
>>740932>>740856Всем спасибо, заработало, когда я убрал переносы в длинной строке с print.Вопрос - в Питоне есть фича с дроблением длинных строк команд (не тройными кавычками для текста) ?
>>741001на ideone уже пример с дроблением list exсeption. Если с такими переносами у тебя не запускалось выкинь нахуй IDLE и поставь нормальный редактор. По пепу все что внутри скобок должно идти с отступом в один пробел от скобки, последняя и первая скобка не переносится.
>>740908http://stackoverflow.com/questions/2309027/catch-close-gtk-window
>>740674нет>>740685> вне gnu/linux я не стал бы его использовать.Почему это?
Как правильнее будет оформить такой цикл? Интересуют выделенные частиwhile x != list[0] or list[1] or list[2]: print ("TEXT.") test_1 = input ("TEXT") fun(test_1)
>>741062while True: if x != list[0] or x != list[1] or x != list[2]: print ("TEXT.") test_1 = input ("TEXT") fun(test_1)да, я дурачок
>>741073from .SomeModule import FooЧто делает точка ?Чому не робит если ее убрать? Импортирующий файл находится в одном каталоге с каталогом модуля.
СТоит бля один день себе поблажку дать и провалятся на диване, пиная хуи типа мам смотри я ПРИБОЛЕЛ, так на следующий день снова взяться за учебу и работу так же сложно, как героинщику слезть с иглы. Вот чтоб еще хоть раз!
>>741090http://stackoverflow.com/questions/22511792/python-from-dotpackage-import-syntax
>>741062while x not in list[:3]:
>>741073if x not in list[:3]
>>741110>>741111ну вообще :3
>>741121Как в ElementTree рекурсивно получить все ноды с нужным тегом?findall - ищет только на одном уровне вниз.
>>741148Запускать вниз по дереву эту функцию с фандалл рекурсивно?
>>741150Да я так и сделал, но думал есть что-нибудь готовое.Все доки обмазаны какими-то .iter() .iterfind() .findall() .find() и нихуя не ищет рекурсивно, и еще это все говнище не всегда принимает неймспейсы в параметры.Нет слов - Пистон.
>когда понял питон
>>741154iter должен рекурсивно проходитьили xpath используй.
>>741052> нетНу, тогда… а у pyqt5 уже колёса :P>>741154Не зря же зделали всякие lxml. Нет слов — ДОЛБОЁБ
>>741022У меня PyCharm. Чтотакое list exception ? В поиске ничего не нашел про это применительно к Питону.
Посоны вот вы говорите что питон всесилен, как мне тогда с его помощью найти тян?
>>741173list comprehensionя подобосрался маленько
>>741193from ulitsa import tyan
>>741215name `tyan` is not defended
>>741216from ulitsa import Natasha
>>741220git clone git@ulitsa.ru:tyan/natasha.git /home
Почему нигде нет инфы про перформанс джанго? Сколько rps тянет?
>>741254>Сколько rps тянет?По сравнению с чем?Тут всё зависит от многих факторов - как используешь кеширование, правильно ли организована БД, построены индексы/кеш и нет ли лишних запросов к ней. и т.п. В целом джанго можно использовать для высоконагруженных сайтов
>>741261Обычный хелло ворлд из экшена. Интересен оверхед самого фреймворка.А то сейчас сижу на одном микрофреймворке php, и хоть он тянет 1.5к рпс, там нет нужной мне фичи.
>>741279хуйней страдаешь кароч, хеловодчик
>>741254А почему ты гуглить не умеешь? Первый результат по запросу web frameworks performance: https://www.techempower.com/benchmarks/
>>741279Попробовал https://github.com/django-ve/helloworld на ноуте получилось 2700 rps. Но это на голом gunicorn без nginx(с ним должно быть лучше).Но это всё очень оторвано от реальности - например рендеринг шаблонов много времени занимает в реальных приложениях. И смысла в таком тесте нет. Да и если нужно именно helloworld какой-нить микрофрейморк, асинхронный может даже будет быстрее.
>>741298Асинхронные быстрее, если ты долго ждешь данные, так-то они намного медленнее.
>>741254http://klen.github.io/py-frameworks-bench/
>>741304Нет
>>741298>>741306Ну все, перекатываюсь, посоны. Встречайте конкурента, лел.
>>741309Да. Посмотри любой бэнч на хэллоу ворлд. Или сам проверь.
>>741314Ну допустим на локалхосте. А если сервер удаленный находится и куча одновременных медленных соединений?
>>741316Эту проблему уже давно решили - nginx. Без него да, все плохо будет.
>>741319А nginx разве не асинхронный?
>>741200Заполнение списка, что то вроде генератора, ток не он.Мимо три задачки на чекио
Что могут попросить написать на тестовом задании в офисе чисто на пайтоне? Есть какие-нибудь платины?
>>741325Что угодно.
>>741320Асинхронный. Его ставят перед синхронным веб-сервером как раз из-за медленных клиентов. Ну и еще статику раздавать.
>>741325>тестовомПиши прям щас на выбор, либо аалькулятор либо реализуй конечные автоматы
>>741328То есть синхронные фреймворки быстрее асинхронных за счёт асинхронного веб-сервера? Ну ок.
>>741329>конечные автоматыЧто это?>КалькуляторTkinter?
>>741331Мы вам перезвоним.
>>741332))
>>741331Да хоть в терминале.Что такое конечные автоматы- сам не знаю, просто слово нравится. Пиздецки серьезное такое, не находите?
>>741334Ясно.
поясните за psycopg2.Если у меня 2 потока, то мне по курсору на каждый поток хватит? Или нужно подключение делать для каждого?
>>741353http://initd.org/psycopg/docs/pool.html#module-psycopg2.pool не
>>741330nginx на си написан и крайне задрочен. Так-то там такой же селект/полл, как и в asyncio/uvloop.
>>741361Спасибо. Подожду, пока скрипт упадет и сделаю.А что будет, если просто несколько курсоров использовать?
>>741372То есть синхронные фреймворки быстрее асинхронных за счёт асинхронного веб-сервера написанного на си и крайне задроченного? Ну ок.
>>741372> селект/поллселектом никто не пользуется нигде. и обычным поллом тоже.под прыщами epoll под фряхой kqueue и т.п.
>>741377Кто сказал-то, что синхронные быстрее асинхронных?
>>741376http://initd.org/psycopg/docs/usage.html#thread-and-process-safetyвсё ок будет походу
>>741378Да суть одна.
>>741380Ну ладно. Спасибо.
>>741379>>741304>Асинхронные быстрее, если ты долго ждешь данные, так-то они намного медленнее.>так-то они намного медленнее
>>741215Can't import tyan because ti pidor
>>738709 (OP)Подскажите по PyCharmСоздал проект, в нем два скрипта, оба в одной директории. Первый - рабочий, второй - модуль с функциями, который я импортирую и использую в рабочем. Но если я меняю что-то в модуле, например, имя функции, она перестает импортироваться.Пробовал через контекстное меню очищать компилированные файлы, не помогает. Помогает только перезапуск PyCharn. Это как-то можно исправить ?
2.7.11 - говно мамонта или можно учить?
>>741410import impimp.reload("my_yoba")попробуй, но это не решает проблему с пайчармом>>741412нет
>>741412Говно без задач
>>741384Ну, это пёс какой-то сказал. Так-то разницы нет.
>>741415Не говно или не учить?
>>741421И то и то.
>>741421не учить говно.
>>741428Но везде в требованиях 2.7.
>>741421Учи. На нём хотя бы работа есть, в отличии от тройки.
>>741436>>741435>работа на питоне>с чего начинатьЯ смотрю тут такие мамкины гении одни собрались, пока ты выучишь питон все эти быдлоконторые которые не осознали прелесть трешки уже обанкротятся.
GTK 3Анон, есть две кнопки и "scrolledwindow" с заданным значением "adjustment" через переменную "value". Кнопки (plus, minus) добавляют и прибавляют значение "value".По сути, должно добавлять это значение и прокручивать текст дальше. Но нихера не работает.Нужно ли добавить обновление виджета через "GObject"? Или же как можно это реализовать?http://pastebin.com/iL14Rgxg
>>741461Тебе надо в plus и minus делатьself.position.set_value(self.value)вместо>self.scroll.set_vadjustment(self.position)
>>741474Thanks, mate.
Какого хуя так нелогично?Одни долбоебы начинают нумерацию месяцев с нуля, другие - пикрилейтед.
>>741553Вроде все логично. С днем недели запутанная история, одни используют 0-6, другие 1-7, а вообще принято 0-7, где и 0, и 7 - это воскресение.
Возникла странная проблема. После использования python увожу комп в спящий режим. Просыпаюсь, комп горячий как печка. Смотрю диспетчер задач, вижу активный процесс от python, 20% мощностей проца сжигает. Что думаете, хакер биткоины считает? Стараюсь теперь после использования python убивать процессы. Но иногда забываю, как сегодня забыл.
>>741559В JS месяцы с нуля, дни с единицы. Здесь наоборот, лол. Как будто специально пердольку подкладывают.
>>741560процесс может остаться висеть если программа явно не завешилась через os.exitу меня на убунточке такая хуйня была с питоном.скрипт вылетает по ошибке, смотришь top а он там висит.
>>741575многопоточный скрипт наверное? или форкался?
>>741575Да, выход из проги не всегда по плану происходит.
Господа, поясните, что такое "can do NLP" в питоно-тусовке?
>>741593https://en.wikipedia.org/wiki/Natural_language_processingнаверное
>>740745ты доской ошиблась, мань.
Чому еще не завезли присваивание в стейтментах:if var = doSomething(): passprint var?
>>741644А зачем?
>>741644Присоединяюсь к вопросу >>741646
>>741644Что это за содомия?, лол, чему будет равно var?
>>741648Результату выпалнения doSomething()Но это нужно в сишечке, потому что там нет исключений и функции типа open возвращают -1 в случае ошибки, так что там пишутif( (f=open('foo')) != -1) { }в питоне есть исключения и with для этого.Или там пишутwhile(x = get_next_value()){ }в питоне есть for .. inТак зачем в питоне это? Чтобы нубы путали == и =(как часто случается в си у нубов)
>>741648Тому, что вернет doSomething().Юзкейс:if (!res = deletePython()) {return false;}...return true;
Че за нах, вроде же в питоне было точное деление и деление нацело.
>>741659На пике второй питон, в тем надо писать 5.0/2 либо сделатьfrom __future__ import division
>>741660Да уж, спс.
>>741660Только нахрена тогда два оператора?
>>741663Чтобы если ты сделаешь from __future__ import division можно было целочисленное деление использовать всё равно
>>741663чтоб делить float на float без остатка?
>>741659
>>741745тхред читай
Друзья, есть тут кто-нибудь, кто работает на апворке или хотя бы делал хоть раз один проект там? Там для новичков - это entry level же? Как-то у меня от всего этого глаза разбегаются и все как-то сложно вроде. Можете подобрать пример вакансии, где можно справиться и на уровне любительского скриптописательства?Или может есть какие-нибудь еще годные биржи, где есть работа по питону? На русских сайтах какие-то уж слишком специфичные заказы уровня сениор-уровня.
>>741785дай ка примеров с русик сайтов.
>>738709 (OP)Не ту змею на ОП-пик поставили.
>>741791Ту, у тебя не питон.
>>741788В нормальных странах джун - это как минимум 2 года работы. 0-2 - трейни2-5 - джун5-8 - миддл8+ - сеньор
>>741797классно ты на мой вопрос ответил
>>741806Промахнулся.
>>741788Ну вот, например:https://www.weblancer.net/projects/759113.htmlhttps://www.weblancer.net/projects/754010.htmlПричем на русских сайтах заметил тенденцию, что пишут очень расплывчатое ТЗ, то есть приняв тебя, могут взвалить кучу непонятной фигни, а ты не будешь знать, что с этим делать. На иностранных обычно всё по полочкам расписано, но тоже сложновато. Так вот, неужели нет каких-то простых заданий? Откуда же студенты опыт нарабатывают, не с самописных имиджборд же, крутятся среди реальных задач небось. А стажером за еду сейчас никто не берет.
>>741797> года работыЧто подразумевается под годами работы? Работа над своими проектами или с коммерческими штуковинами на реальной работе? Так а кто их берет то на реальную работу без опыта? Как в интернете получить этот опыт, если не знаешь, как правильно все делать, за что браться? Книги и туториалы учат однобоко, на практике застопоришься на чем-то и все, понизят рейтинг и конец.Не понимаю я, как устроен этот мир - вроде в начале все одинаковые, я порой знал всякие штуки даже лучше своих ровесников, а потом бац - и все находят работу без особых знаний в голове, а я нищебродствую со своими проектами.
>>741415>imp.reload("my_yoba")у меня питон 2.7, там просто reload(module_name). Это работает, только если подключать как import mymodulereload(mymodule)если прописывать функции наппримерfrom mymodule import myfunctionreload(mymodule)то изменения в module не появляются
>>741826так мой пример у тебя работает? изменения появляются? по второму вопросу, ты не понимаешь как инструкция from работает.
>>741823В подсобке пет-проекты, потом трейни за еду. Ну а джуны уже 60к$ в год получают.
>>741838>В подсобке пет-проектыЧто еще за подсобка? Я бы вообще рад работать за сто баксов всю жизнь, только не нужен никому "трейни".
>>741844У мамке на шее, в общаге.
Как в django заюзать собственный view или колл в другом app'e?
>>741883reverse('some_app:other_view')
>>738709 (OP)Че т подзаебался, помогите кто чем может.
>>741915Я так понимаю в цикле код выше одной ступени не имеет доступМимо-нуфаг
>>741920Хуйню скозалУ тебя ворд и там и там, а это уже разное
>>741915по-идее оно должно выводить на каждой итерации:huihui, hui, hui, huiпотом pizda - по первому принтуpizda pizda pizda pizda - по количеству элементов dictпри условии что lemma in dict это опечатка и вместо dict должно быть slovar
>>741915Убить бы тебя за эти переменные
>>741915Так у тебя slovar і mycorpus, а ты цикл по dict написал, который как бы пуст.
Да вы заебали не постить перекат. Полтреда из-за вас пропустил, смотря на всплывающее "Нет новых сообщений".>>741915У тебя там вообще хуита какая-то, set принимает лишь один аргумент.Нахуй отсуп у первого for'а? Зачем ты по классу dict проходить пытаешься?>>741920всё имеет - http://ideone.com/Og6teK
>>741830да. работает и imp.reload и просто reload. Проблема была в том, что я не делал Save All. С ним работает и при import ZZZ from module. Без imp.reload или reload ничего не обновляетсся даже после Save All.>не понимаешь как инструкция from работает.а как она работает ?
>>741923>hui, hui, hui, huiprint будет перевод строки делать каждый раз>>741915в чем прикол ? в начале и цикле разные переменные же ?
>>742019>Проблема была в том, что я не делал Save All.>ничего не обновляетсся даже после Save All.так ты решил проблему с пайчармом? пиздец, ты понятно можешь мысли выражать?
>>742022что такое пайчар ?1) изменение, Save All, reload/imp.reload, вызов - обновляетсся2) изменеие, Save All, вызов - не обновляется без Save All не обновляетсяв общем,вопрос решен с помощью Save All и reload
>>742022>>742033а, это pycharm
>>742014Короче, переменная была dict, потом чтобы не путать с типом dict когда код шотил исправил на slovar.>>742017> set принимает лишь один аргументДа хер его сколько он там принимает. Это демонстрационный вариант, чтобы было понтно, что тип set используется.>>742021Ну, ты понялСпасибо, пацаны. С утра разобрался.
>>742072>Это демонстрационный вариантТак, блядь, запускать свои демонстрационные варианты и убеждаться, что проблема там присутствует нужно. А то принёс говно какое-то и помощи просит.>переменная была dictОх, уебал бы тебе Гвидо хорошенько.
Господа, реально ли в джанге стандартными закостамайзить 404 для определенного контроллера? Грубо говоря везде один вариант 404, а в товарах - другой
>>742140
>>742017>Да вы заебали не постить перекат.>>738710Пиздец ты тупой.
>>742142Спасибо!Нашел еще более простое решениеreturn HttpResponseNotFound(render_to_string('404.html'))
>>742144Блин, и правда ведь. Тогда заебали постить двадцать постов после переката, скрывая его!
>>742145хм ну так наверное всякая хрень не передасться в шаблон типа request.userоно может и не нужно, но мало ли
Почему не попадаю в блок эксепт?
>>742153В блоке try ты просто присваиваешь переменной значение. Что там может пойти не так?
>>742153А с чего бы input'у выдавать FileNotFoundError?
>>742157>>742156Понял, в ахуе сам с себя.
>>742138Че ты доебался. Хуй пойми на этом ideone че вообще происходит и куда тыкать.Я ебал что словарь это dict? Гвидо долбоеб раз сокращает так уебански названия типов.У меня learning by doing -- пошел на хуй
>>742161>Че ты доебался.Хочу, чтобы в следующий раз ты при проблеме написал нормальный пост и тебе смогли сразу помочь.
Кстати, break и while True - зашкварно с трай кэтчем или норм?
>>742163Да помогли, я даже поблагодарил.Сам знаю, что долбоеб. Просто заебался.
>>742166А почему бы просто os.path.isfile не использовать?
>>742178Не понимаю как ты предлагаешь организовать цикл проверки доступа к фалу.
>>742186https://docs.python.org/3/library/pathlib.html?highlight=exists#pathlib.Path.exists
>>742196Но input возвращает str.
>>742161> Я ебал что словарь это dict? Нехуй в блокноте кодить.
>>742186При чём тут цикл. Я просто предлагаю заменить проверку через ошибку от левой фукнции на человеческую функцию, сделанную специально для проверки на существование.path = ''while not os.path.exists(path): path = input("Kuda edem, druzhok?")>>742200И?
>>742219Да, выглядит короче. Да и работает небось быстрее если дрочить на миллисекунды. >>742219Хуи) Я тогда еще не понял.
>>742210Dict это зарезервированное название ? (лол, кодить только вчера начал, не знаю терминологии)>>741915Вот у меня вопрос, word/lemma же нигде не определенны и в каком-нибудь С подобном языке я бы сначала присудил к word/lemma соответствующие списки, а только потом писал цикл for ? Питон автоматически определяет что word/lemma связаны с элементами списка, тип во время исполнения он присуждает word каждый элемент mycorpus ? И вместо word могло быть какое угодно название ?
>>742262https://docs.python.org/3/reference/lexical_analysis.html#keywordshttps://docs.python.org/3/library/functions.html
>>742276Давай, покажи ему.Возможно даже когда-то он научится гуглить.
>>742276Арихато
>>742262>Dict это зарезервированное название?Как переиенная нет. Лучше избегать, чтобы не путаться.> word/lemma же нигде не определенныИнициируются и менят значения динамически в цикле.
>>742283спс
Джанго же на каждый запрос заново инициализирует приложение, как и везде?
>>742340нет
>>742340И что значит "везде"? Это не php и не cgi скрипт
>>742343Пхпшку имел в виду.
>>742342А как же он тогда работает?
>>742350Быстро
>>742350Запускается как сервер и в цикле обрабатывает входящие запросы.
>>742368А как с утечками памяти?
>>742372Какими утечками? После того как функция-вьюха отработала всё её переменные прибиваются сборщиком мусора.В глобальных переменных вещи типа коннекта с базой данных только.
>>742368Как называется процесс django, хочу найти его в top?
>>742376Ну обычно в long-running аппликуках могут быть утечки, когда даже сборщик не поможет. В node.js с таким сталкивался.
>>742379python.exe
>>742379Смотря как ты запускаешь джанго uwsgi? gunicorn? apache+mod_python?
>>742384Gunicorn, и его процесс я вижу.
Посоны, поясните за Scrapy. Почему все вдруг массово стали его юзать, чем оно отличается от супа, например? Типа там встроенные запросы и не надо ревесты инклюдить? Посмотрел на доки - куча какой-то непонятной и неочевидной фигни над простыми задачами, не понимаю, как такое поделие взлетело у хипсторов.
>>742407его толкает scraping hubна самом деле в scrapy не только парсенк, но и асинхронщина, пайплайны (как и куда сохр. данные)scrapy имеет смысл юзать если уже есть инфраструктура (где его запускать) или нужно парсить много-часто-быстроrequests+lxml (ну phantomjs для сложного жаваскрипта) для большинства сайтенгов пойдет
>>741785>где можно справиться и на уровне любительского скриптописательства?парсенк за ~50 баксов
>>742409Мне вообще нравится selenium через все эти куки плюшки тот же хохловский авито - olx с кучей защит от парсинга им парсить можно просто в три строчки
Короче пацыки кто-то рекомендовал книжулю (есть онлаен) Intermediate Python за авторством какого-то Махмуда ибн Юсуфа аш-ШишаниЭто пушка. Код местами нерабочий (пример - декоратор не возвращает функцию), местами рабочий, но неправильный (проверка четности: number %2 is 0) Короче, читать новичкам ее смысла нет. Если есть какая-никакая база, то есть все ошибки вы возможно увидите и исправите, то читайте.
>>742413ну phantomjs может использоваться вместе с Selenium, а еще он headless, можно на серваке без иксов его крутить.Selenium да, стандарт у тестеров.
>>742409и в scrapy, по-моему, не решен уапрос обработки джаваскрипта
>>742415>проверка четности: number %2 is 0Что не так?
>>742423это работает только потому, что маленькие значения интов кэшируются поменяли канпелятор-оптимизатор и приветравенство надо проверять, внезапно, оператором равенства
>>742428Так это ж примитивы
>>742434В питоне нет примитивов, всё-объект. Тот анон прав, то что у x=0 и y=0 будет одинаковый id это оптимизация и особеность реализации, пологаться на это не стоит
>>742437Прикольно будет это отлаживать.
>>742410>парсенк за ~50 баксов Ссылочку не подкинете, любезнейший?
>>742465а мне жалко свое искуство разменивать на чужую хуйню типа магазинов.сколько б не заплатили, для чужих нихуя бы не делал
>>742465фильтруй по стоимости и по слову "parse", "crawl"
>>742489Да мне лишь бы на пожрать хватило, тут уже не до гордости.>>742495Фильтровал, там постоянно какие-то специфические задачи и дополнительные - типа распарсь скрапом и подключи к гуглу, или залей на постгрес и авс. Чисто парсинга для нуба там нет. Хотя парсить то я умею, а вот всякие побочные фреймворки не очень. И в каждом заказе они новые, заебешься все учить.
>>742413кстати в чем смысл парсить авито? копировать фото товаров на свой сайт? видел ещё продаются аккаунты на него, смысл это делать? чтобы продать 100 штук с каждого по одной чтоле? и засрать выдачу?
>>742428я недавно узнал что большие числа тоже кешируются, попка немного пригорела.
>>742571depends on implementation жи>>> a=1020>>> b=1020>>> a is bFalse>>> id(a)42847552>>> id(b)43988488cpython 2.7.10 win32
>>742658a и b 10 в двадцатой степени везде
>>742658
>>742678через отдельные переменные посчитай>>> a=pow(10,6)>>> b=pow(10,6)>>> id(a)43777256>>> id(b)43777136>>> a is bFalse>>> map(id, [pow(10,6) for _ in range(10)])[43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760]>>>
>>742686зачем мне через отдельные переменные? суть этого примера показать что он их кеширует.
>>742686ошибся>>> map(id, [106 for _ in range(10)])[43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760, 43773760]>>> map(id, [pow(10,6) for _ in range(10)])[43773760, 43777340, 43773892, 43777184, 43777244, 43773880, 43773856, 43773844, 43777160, 43777292]>>>
>>742693попробуй, блять, и не тупиу тебя кешировалось один раз 10^6 именно выражения генератора (generator comprehension)попробуй заменить 10^6 на вызов pow(10,6) и посмотри на разницуты путаешь интернирование (кэширование значений) и особенности работы выражений
Посоны, а как вообще проходит принятие на фриланс-заказ? Как и на реальное работе, тех кто подал заявку интервьюируют и потом принимают? А вот если в ТЗ написано спарсить несколько сайтов, но не указано каких - вот я например не могу еще в жс и прочий эйджакс парснг - то так и сказать при собеседовании? А вдруг это потом вскроется такие детали? Что делать, если не смогу?
>>742568Я квартиру в аренду искал, например. Когда-то еще мониторил конкурентов по соответствующему запросу, кто новый, что появилось, как объявки меняли и тд. В целом помогало - они скидку - я скидку, они вернули цену - я вернул
>>742658Python 2.7.10 win 32-5≤ a, b ≤256 -> TrueЧто это значит применительно к написанию программ ?
>>742696вот тебе через переменные и без генераторов
Как это короче записать?[code]for d, dirs, files in os.walk('c:/djangay'): print('Директория: ' + d, end="") if not files: pass else: print(' Файлы: ', end="") for f in files: print(f,end="") print()[/code]
>>742778Разметка не удалась
>>742778http://puu.sh/oQFRd/4114dc729d.png
>>742783на идеоне забанили?
>>742778http://ideone.com/OdsZEb
>>742787Спасибо, красиво вышло.Следующий вопрос. В сторону чего копать чтобы в итоге такое окно оформить как на пике? Больше всего интересует сам список файлов, чтобы потом сделать по щелчку по названию столбца сортировку по имени, размеру и прочему.
>>742805Получаешь атрибуты файла через os.stat, формируешь список из объектов или словарей, про сортировку можешь тут почитать:https://wiki.python.org/moin/HowTo/Sorting
>>742805qt
>>738709 (OP)Почему в PyCharm 4.5.3 и Python 2.7 все нецелые результаты операций окгругляются до целого, даже с функцией float ?>>> float(10/7)1.0
>>742838Потому что во втором питоне результат деления целого на целое - это целое, а float-ом ты просто превращаешь целое во float. Если хочешь нормальное деление, то кастуй либо делитель, либо делимое:10.0/710/7.0float(10)/710/float(7)В Python 3 деление всегда float.
>>742838потому что ты делишь целочисленным делением и ПОТОМ переводишь результат во флоат.Попробуй наоборот
са
Если в Fibonacci Heap убрать убрать два ребенка у элемента root уровня, то что с ним случится?Он станет маркированным дважды и озалупится в отдельное дерево состоящее из него самого или маркировка просто "сгорит" и он останется на месте со своими чилдренами?
>>742694Второпитонщик иди нахуй!
>>742843Проиграл
>>742705Просто пишешь, что можешь сделать в такой-то срок и всё. Никакого интервью и прочее.
>>742841>>742840спасибо
>>742805Какой виджет использовать чтобы сделать такой список?
Заебался с jedi для vim. Установил, запускаю, а он только подсветку синтаксиса и скобок запилил. И то кривую. Никаких автодополнений, нумерации строк, подсветки сторики с курсором. Запустить прогу не могу т.к. на отсутствие мэйк-файла жалуется и доки не установились. Где блять нормальная инструкция? Похоже для красивого вида нужно ещё плагины. Какие?
>>742730Что лучше не использовать числа вне этого диапазона, иначе будет использоваться лишняя память. Если уж прям нужно большие, можешь выдумать своё представление чисел полином из этих маленьких.
>>742805pygtk listview
>>742805Вот можешь кстати исходники поизучать http://sunflower-fm.org/Ещё есть консольные файловые менеджены lfm например
>>742981Спасибо! Но думаю я слишком зеленый, чтобы в исходниках копаться. Пока что буду в сторону pygtk копать.>>742980Красота, спасибо, а на pyqt похожей фичи нет? Как то он удобнее помоему.
>>742982> а на pyqt похожей фичи нет? Есть> Как то он удобнее помоему.Глупости. Просто посмотри сколько реально популярного софта на pygtk/gobject. А на pyqt нет почти ничего.
>>742984Значит буду на pygtk бахать, если разберусь, итоговая цель - простенький файловый менеджер. пока что сделал простое окно и пытаюсь разобраться с модулем os, думаю он пригодится
>>742732ты тралишь?или серьезно не понимаешь?
>>742730это значит, что проверка, например, н четность такая:number % 2 is 0будет работать. Но так делать не надо.
>>742984> Глупости. Просто посмотри сколько реально популярного софта на pygtk/gobject. А на pyqt нет почти ничего. Иии? PyQt5 реально крутой, несколько тредов назад я уже писал почему.
>>742985> pygtkУмер 5ть лет назад.
>>738709 (OP)Поясните про рекурсию. Насколько понимаю, он сначала x(x-1), потом результат на ((x-1)-1) ... ? Как из этой записи можно понять, где происходит очередной шаг и изменение аргумента на единицу и повторный вызов функции с новым аргументом ? def fact(num): if num == 0: return 1 # факториал (0)=1 else: return num fact(num - 1) # возвращаем результат произведения num и результата возвращенного функцией fact(num - 1)
>>743146>Как из этой записи можно понять, где происходит очередной шаг и изменение аргумента на единицу и повторный вызов функции с новым аргументом ? Ну вот же:return num*fact(num - 1)
>>743146Ну нарисуй диаграмму состояний, как в книге think python, там помоему отлично обьясняется, именно на примере факториала
>>743179http://pythontutor.com/visualize.html#mode=edit
>>743182Можно и так. А можно и самому подумать
>>743183>самому подумать>2016
>>742969Бамп блять. как мне этой хуйнёй пользоваться?
>>743275У меня всё работает. Инстукция там есть
>>743286Этот модуль у всех есть?
>>7432941) Что ты делаешь на первом пике? Почему из вима прям?2) Что ты нажимаешь чтобы появилось дополнение? supertab или типа того стоит?
>>743296>Что ты делаешь на первом пике? Почему из вима прям?:make это же ide из него нужно запускать. Иначе в нём смысла нет.>2) Что ты нажимаешь чтобы появилось дополнение? supertab или типа того стоит?ctrl-space и он не работает. А хочу чтобы ничего наживать не надо было. Как в обычных ide. И нет. Ничего кроме jedi не устанавливал.
>>743300Судя по выхлопу make тебе надо сначала сделать :chdir /папкаспроектом> ctrl-spaceА ты его определял так? По-умолчанию автокомлит на ctrl+x ctrl+o вроде. С supertab будет по табу> А хочу чтобы ничего наживать не надо было.Это как-то можно сделать вроде let g:jedi#popup_on_dot = 0 вроде опция
>>743300Вообще вот тут же инструкция естьhttps://github.com/davidhalter/jedi-vimЯ по ней всё делал и всё зашибись.Надо кстати в самом питоне модуль jedi поставить для начала.
>>743308>ctrl+xничего не делает, а ctrl+o переключает буферы. Но на гитхабе в инструкции кажется ctrl-space было>>743309>Надо кстати в самом питоне модуль jedi поставить для начала.Выполнял какую-то команду с pip для этого.
>>743312Надо нажать ctrl+x и не опуская ctrl o
>>743312А нафига тебе вообще vim? На любителя штука. Юзай pycharm.Я много лет использую vim по привычке, но большой проект я бы в pycharm лучше делал и вообще хочу его освоить.
>>743236>2016>wild greetexting
>>743317Другой файл открывает. Как эта штука называется? В доках про компиляцию ничего не могу найти.
>>738709 (OP)Гайз, оцените мой говнокод плз. Первая собственная прога на питоне. Буду очень рад если укажите на ошибки.https://github.com/luckone/viselitsa-game-v.0.1пикрандом
>>743340правильно писать "веселиться"
>>743339omnicompletionнасчет конпеляции незнаю.
>>743340from methods import звездочкаfrom random import звездочкатак делоть харамновато, хотя так и продакшене многие делоют
>>743340А теперь напиши симулятор палача. Утром приходишь на работку-вешаешь, декапитируешь, вечером домой к коту и слезливым бульварным книжонкам.
>>743340> camelCase> табыКак будто в глаза насрали.> https://github.com/luckone/viselitsa-game-v.0.1Для каждой новой версии будет новый репозиторий?
>>743343>>743343виселица же :)
>>743382>>743382гитхабом тоже только учусь пользоваться, чем плох таб и camelCase?
>>743390Ничем, просто не по пепу:https://www.python.org/dev/peps/pep-0008/
>>743393В пепе сказано что можно использовать табы главное не мешать табы и пробелы в одном проекте.
>>743397Да, но предпочтительней все-таки пробелы.
>>743390все pyc, pyo, pyd файлы из репоззитория должны быть убраты
>>743340>misstakesmistakes же>randomWords[randint(1, len(randomWords)]Есть же random.choice()>randomLetters = list(randomWord)Зачем преобразовывать в список, если всё тоже самое можно делать со строкой?
>>743479Зачем импортировать random в обоих файлах?>randomWords[randint(1, len(randomWords)]Здесь, кажется, скобочка потеряна и почему-то значение индекса от 1.
Sup, ребята.Есть один скрипт, делающий бекап (архивирует) заданных директорй, которые хранятся в листе: source = ['/home/user/media/Dropbox/Images/Wallpapers/', '/home/user/media/Dropbox/Images/Photos/']Вопрос, как вытащить название последней директории из элемента листа, чтобы потом всунуть её в имя архива, учитывая, что делается архив каждой директории из листа отдельно?
>>743488>if letters == goodLetters:Если отгадывать буквы не по порядку, то списки не будут равны никогда. Победы не дождаться.
>>743492os.path.basename(path)?
>>743497возвращает пустую строку.
>>743497>>743501Есть, спасибо, няша. Надо было без '/' в конце пути./home/user/media/Dropbox/Images/Photos
>>743493>variant = input()Никак не проверяется что в variant. А если пользователь введёт несколько букв?
komodo работает только если прогу поместить в /home/user/komodo/bindir pwd python3 в терминале внутри komodo работают, а cd нет.
>>743546И почему приходиться постоянно писать в консоль и нет горячей клавиши для этого?
>>738709 (OP)https://ideone.com/BMmrVwПоцоны, короче такая тема. Это примитивная адресная книжка с возможностью ввода имён и номеров в словарь, который записывается в файл. В дальнейшем можно(нельзя) найти номер по ключу. Но вот беда, прога находит только имена которые были введены в чистый файл в первый раз, остальные записи не видит, хотя они в файле сохраняются. Помогите решить проблему.
>>743729Тебе нужно переписывать файл по-новой каждый раз, а не просто добавлять в конец, смотри:>>> f = open('addressbook.txt', 'rb')>>> pickle.load(f){'test': '123', 'test2': '1234'}>>> pickle.load(f){'test': 'test rabotaet', 'test4': '31231231', 'test3': '123123'}>>> pickle.load(f){'test': 'test rabotaet', 'test4': '123123134124', 'test5': '234234124', 'qweasd': '1231231', 'test3': '12312312312'}
>>743735Так теперь не находит имена/номера, которые ввел в первый раз, а мне нужно чтоб все введенные номера сохранялись.
>>743729SQLITEQLITE
>>743744Спасибо!
>>743744Ты ебанутый. Видно же что человек только учит питон, задание - скорее всего из "A Bite ..."/"Dive into .." и тут ты - пиздец-молодец такой с СЭКЮЭЛЬАЙТДа нахуй никому ещё одна адресная книга не сдалась даже в учебных целях с бд.
>>743748Вот это ТРАЙСБЭК
>>743741Так ты при старте программы загружай содержимое файла в словарь, потом добавляй/ищи по нему, а когда выход - записывай словарь в файл, затирая текущее содержимое.
>>743754Меня просто бесит маразм.
>>743756а если программа упадет?
>>743546ln -s?
>>743775Ну тогда делай бэкапы каждые н минут, тут ничего не поделать. Ну или насилуй файл и переписывай его каждый раз, когда пользователь введет новую запись. Ну или при поиске делай в цикле пикл.лоад, пока не найдешь словарь с нужной записью.
>>743729Это из Лутца?
Пилю вот примеры по Укусу Питона и первая задача по скрипту, который делает бэкап.https://ideone.com/TkAgC6всё работает, но, в архиве создаются поддиректории, а не конкретна та директория, которую я задал в source.То есть, из примера, ожидаемо, что в архиве будет директория Wallpapers с файлами, но в архиве у меня несколько директорий: home/user/media/Images/Wallpapers и только потом файлы. В чем провтык?
>>743777С каждыйм файлом так делать? Тут даже кнопки выполнить нету. Приходиться сохранять и запускать программу нажатиями 5 кнопок. Это же бред. Может плагин какой есть на этот случай?
>>743784zip по умолчанию создает полный список директорий, можно делать cd в нужный каталог и обратно (cd/pushd/popd)
>>743784Попробуй добавить ключи -j к команде zip
>>743788zip error: Invalid command arguments (cannot repeat names in zip file)
>>743756Спасибо, помог. Не знал что если открывать файл через 'w', то всё содержимое сразу удаляется.
>>743792Видимо у тебя в директориях файлы с одинаковыми именами или ещё чего. Тогда вариант как анон выше написал >>743787
>>743796> Видимо у тебя в директориях файлы с одинаковыми именамиДа. Но они в поддиректории (Wallpapers/001.jpg & Wallpapers/subdir/001.jpg). Странно, что на такое ругается. Как-то обойти можно?
https://ideone.com/RSe42xЧому в архив добавляется еще сам скрипт? То есть, помимо директорий, которые передаются из sys.argv, еще и добавляется скрипт, который выполняю прямо в корень архива.Например, содержание архива:-Wallpapers-Photobackup.py
>>743812>source.extend(sys.argv)Первый аргумент в argv - это название выполняемой команды.
Вопрос уровня дебила: вот есть фреймворк типа Джанго. Он унифицирует все по полочкам до переносимости отдельных частей между проектами, унифицирует вид и способы взаимодействия.Существует ли что-то подобное для не веб приложений? Где из коробки тебе хранение всякого говна, модели стандартные что с этим делать и тд. Если нет то почему?
>>743814А как можно его скипнуть?
>>743819source.extend(sys.argv[1:]) же
>>743820Уже читнул и вкурил. Спасиб.
def make_tarfile(output_filename, source_dir):----with tarfile.open(output_filename, "w:gz") as tar:--------tar.add(source_dir, arcname=os.path.basename(source_dir))Как быть, если source_dir формируется из нескольких аргументов?
>>743837source_dir это лист.AttributeError: 'list' object has no attribute 'rfind'Ошибка, если в нём есть несколько элементов. С одним элементом всё работает.
>>743841Сделать проход по списку и для каждого элемента выполнить tar.add?
>>743844https://ideone.com/ZsLHf8TypeError: list indices must be integers or slices, not strВ общем, задача была в том, чтобы создавать архивы с помощью tarfile модуля.
>>743850Замени source_dir на i. i хранит элемент списка, а не его индекс.
https://ideone.com/TOAQ5pКороче, наваял как-то так. Теперь проблема в том, что, если один из аргументов - это несуществующая директория, то создаётся архив со всеми, кроме неё, и вывыодится ошибка, а надо, чтобы архив вообще не создавался. Как такое можно напедалить?
>>743868О, я придумал. Можно впилить проверку на os.path.exist() перед выполнением функции для каждого элемента и, если false, то дропать.
>>743871Иди спать, завтра сделаешь.
>>743872Не могу. https://ideone.com/Ec7eE2 вот, сделал.Осталось решить вопрос, почему архивируется конкретно содержание (файлы) директорий, переданных в аргументах, а не сами директории с файлами. Помогите, посоны.
>>743877Возможно из-за наличия/отсутствия слеша в конце пути.Почему бы не использовать .format вместо конкатенации плюсиками? Наглядней же, не?
>>743878> Возможно из-за наличия/отсутствия слеша в конце пути.Да, именно из-за него. Годно. Спасибо. А можно как-то их обрезать, если пользователь всё-таки ввёл?> Почему бы не использовать .format вместо конкатенации плюсиками? Наглядней же, не? Да, ты прав.
>>743879> А можно как-то их обрезать, если пользователь всё-таки ввёл?'/raz/dva/tri/'.rstrip('/')Теперь иди спать.
>>743880Заебок! Спасибо.Пошел спать.
Как парсить сайты с чертовым аяксом. Вот например http://allrecipes.com .
>>743754он просто НЕ ОБРАБОТАЛ ИСКЛЮЧЕНИЕ
>>7439181) selenium + браузер2) смотришь, какие запросы шлет твой браузер, эмулируешь их при помощи requests, html разбираешь при помощи lxml
>>743963>смотришь, какие запросы шлет твой браузертам этих запросов дохуя, не разобраться
>>743985ищи XHR запросы
>>743918http://ideone.com/YcRQus Вот мои потуги, как сделать что б все сохранялось в csv-file?
>>743744СИКЯЛЯЙТ в питонотусовочке не любят штоле? По-моему, если нет нагруженности и многопоточности, типа серверсайда, то вполне можно замутить, тем более тут чувак вообще стандалон пишет. Фурифокся на SQLite работает, например, какая-то борда еще, может даже двощ, точно не помню.
>>744019Никто не не любит, просто в этом случае он не к месту.
>>743992допустим я его нашел. что с ним делать? там что-то типа https://server_url/get?param=1&position=63451785421586487174681764781548надо как-то ломать сам запрос, чтобы осмысленно отправлять?например, есть куча сайтов, у которых когда долез до конца страницы, подгружается еще порция данных, этим самым ajaxкак найти js-код, который управляет подгрузкой и формирует этот xhr-запрос?
>>743397Вроде как суть в том, что для таба можно задать разную длину в пробелах. Лучше настрой в редакторе, чтобы у тебя таб был равен 4 пробелам и вместо \t он ставил именно их, разницы не почувствуешь, но проблем потом, если будешь где-то работать, меньше будет.
>>744024Ну а как быть с выравниванием строки после переноса?
Сап, помогите ньюфагу.Как сделать словарь, значением которого будет список?
>>744101a = {'key': [1, 2, 3]}?
>>744101ты еблан чтоле?a['penis']=[1,2,3]
>>744102>>744105Блять, это было так просто.Какой же я мудак.
>>744106Спасибо.
>>744022>надо как-то ломать сам запрос, чтобы осмысленно отправлять?смотреш, что запрос получает взаддумоеш, как это соотносится с тем, что тебе надо спарситьзаголовки, как правило, можно копировать втупую, в запросе id различные менять инкрементально
>>743918тут крч есть фронтенд, который взаимодействует с json API.URI имеют видhttps://assetservice.allrecipes.com/v1/asset/hub/81/3?где 81 - категория, 3 - страницафильтруй по хостнейму assetservice.allrecipes.com и познаешь дао-какао
>>744122вот пример ответа jsonhttp://pastebin.com/MTEPFm6Fтебе придется аутентификацию их изучить
Господа, поясните за путь к джуниору. Чего достаточно, для того, чтоб идти на собеседование? Где найти работу, если нужны только мидлы и сеньёры-помидоры с опытом овер дохуя лет?
>>744168Я думаю, надо для начала пиздовать в какой-то попен-сорц проект и фиксить там баги, смотреть че как устроено, вот это всё. Это тебе халявный экспириенс. Правда, за него деньги не платят, но опыта набраться можно. Это и пишешь в резюме + свои проекты.
>>743513Эти проверки на ввод,как у меня печёт от них. В технаре препод на каждую строку кода требовал проверку делать. Заебал
>>744189>>744189>Это и пишешь в резюмеи на это всем похуйтопкек
>>744270Почему? Это уже опыт. Можешь еще свой github показать, где ты там чего коммитил.
>>744115даун ебаный
>>744282ты давай не хами старшим
>>744046Смарт табы и еще что-то вроде есть. Если пишешь не в блокноте - есть куча плагинов, которые тебе и синтаксис проверят и выравнивание поправят.
>>744332Охуенно, кодим в 79 символов чтобы в консольку/нищемонитор поместилось, а тут даже в рандомном ide код не открыть без костылей.
>>744347> в консолькуенждой йор легаси
Сап, питач! Написал на 3м питоне простенькую программу с библиотекой tkinter. Можно ли ее скомпилировать в один .exe-файл (рядом со скриптом лежат картинки и иконки), которые используются в скрипте - их нужно засунуть внутрь, чтобы юзеру было удобно принимать одним файлом, без инсталлятора и прочей ебани. Если это в принципе реально, то куда копать? Можно пошаговый гайд, что качать и в чем разбираться. Boson пробовал, выдает какие-то ебучие ошибки при запуске.
>>744381py3exe и тому подобное.
>>744387>py2exeFix
>>744397Я писал на третьем питоне, но приложение небольшое и реально его поправить под вторую ветку. Но самое главное - реально ли это сделать как я описал, чтобы был exe-файл, один единственный, чтобы иконки и картинки приложения были внутри или типа того, короче дабы юзер скачал один файл и запустил? Анон, помоги!
>>744403Нет, это просто называние, а не версия питона. Ещё можешь посмотреть Pyinstaller. Были ещё какие-то упаковщики.И иконки, и картинки, всё в один .exe файл.
Мне понадобилось вызывать ключи словаря по значениям, делать обратный словарь совсем плохо?Там всего 5 элементов с заданными заранее неповторяющимися значениями.
>>744412PyInsaller самое то, py2exe не советую. (Last Update: 2013-05-29)ключи:-F - в один файл-w - не открывать консоль при запуске. (еслу у тебя с гуи)
Вкатываюсь в питон,решил запилить бота для телеграма(питон2+ фласк).поставил вебхук на %сайтнейм%.github.iо. Пишу боту,пост-запрос на %сайтнейм% не приходит. Как пофиксить проблему?
>>744403Вот приложение собранное PyInstaller, тоже на tk.$ pyinstaller -F -w <input> <output> Все. остальное он сделает за тебя. Ресурсы, модули, интерпретатор - он все зависимости соберет.Это >>744403 тоже тебе.
>>744438Спасибо! Но везде пишут, что он только для python2. Короче, мне переписывать код для второй ветки, и штурмовать PyInstaller?
>>744444Быстрофикс, уже вижу что он есть и для моей 3 версии. Спасибо тебе огромное Анон, буду ебстись!
>>744420Делай обратные словарь, хуле.
>>744668Кстати, если значения не пересекаются с ключами, то можно зделать в одном словаре.
>>738709 (OP)Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)? Ну и не декомпилировать чтоб.Питон можно транслировать в с++/с#, чтобы работало и было более-менее читаемо? В идеале, в исходном питоне используя функции и классы того, во что собираешься транслировать?Можно ли (и если да, то как) написать скрипт автоматизации или макрос, группу таких скриптов-макросов (хоткеи, бинды кнопок и сочетаний, действия с системой), запускающиеся по событию мыши, клавиатуры, системному событию (изменилась раскладка, отключился интернет, етц)?
>>744798>Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)? Ну и не декомпилировать чтоб.net>Питон можно транслировать в с++/с#, чтобы работало и было более-менее читаемо? В идеале, в исходном питоне используя функции и классы того, во что собираешься транслировать?da>Можно ли (и если да, то как) написать скрипт автоматизации или макрос, группу таких скриптов-макросов (хоткеи, бинды кнопок и сочетаний, действия с системой), запускающиеся по событию мыши, клавиатуры, системному событию (изменилась раскладка, отключился интернет, етц)? dot net
>>744798> Питон можно скомпилять в экзешник, который будет работать без самого интерпретатора питона, весить не дохуя и в памяти занимать <500кб (если это хеллоуворлд)?Просто скомпилять как-то можно (хотя у меня ничего не вышло, как ни пытался), но вроде весить будет как раз дохуя, т.к. включаются все библиотеки....Шел 2016 год. Гвидо до сих пор не смог сделать динамические библиотеки и нормальный компилятор.
>>744835динамические библиотеки есть, аутист.
>>744438Ок, попробую. Через py2exe ничего не выходит.
>>744837Рантайм Питона не в динамических библиотеках.
>>744835При чём тут компилятор, там интерпретатор в экзешники вставляется, чтобы тебе не пришлось вместе со своим поделием писать "чтобы запустить, установите пидон плиз". Библиотеки там и так только нужные вставляются, потому что все весят довольно-таки многи, если ты вдруг ни разу в /lib не заходил.
>>744841> "чтобы запустить, установите пидон плиз".Всегда проигрываю.
>>741915>for lemma in dictУпорот чтоли? У тебя же slovar был.
>>744965он уже ответил, что ошибся в названии.
>>744965А что такое лемма, и почему она должна была быть в словаре?
>>744812>dot net Подробнее можно? И нахуя?>netА всякие сипитоны?>>744841Много - это сколько?
>>744812>daЧем/Как?
>>745016>Подробнее можно? И нахуя?Перекатывайся на дотнет-парашу и не пытайся сделать из питона то, для чего он не предназначен.
>>745021Ясно. Но это же шкрепты. Автоматизация, все дела. Мне в прикрепленном посоветовали перекатиться на питон, чтобы не ебаться с автохоткеем и его заклинаниями. А теперь говорите, что это невозможно.> для чего он не предназначенА для чего, напомни, предназначен язык общего назначения?
>>745026>А для чего, напомни, предназначен интерпретируемый не микрософтовский язык?Уж точно не для хелло-вордов в 500 кб, и запуска по хоткеям.
>>745034А причем здесь микрософт? Ява, жс, авто ит, авто хоткей - это микрософтовские языки? >хелло-вордов в 500 кб,Ну да, 500 кб, это где-то в 50 раз больше, чем должен занимать в памяти хелло-ворд, это правда, но мы живём в 2016, поэтому пусть хотя бы так.
>>745034>Уж точно не для >язык общего назначения>Уж точно не для И почему же?
>>745041подгорело, хеловордщик?
>>745044Разве что от непоследовательности зк.>хеловордщикЭто оскорбление?
К автоиту есть/можна зделать бинды, там просто длл. Плюс ещё какая-то либа была
>>745016Ну, это, гораздо больше тех <10Мб, в которые обычно превращается по максимуму ужатое и очищенное от всего лишнего приложение. Просто у тебя и однострочник, и небольшое гуи приложение будут столько весить (впрочем, сама библиотека в 6.6 ужимается, вроде как).
Что происходит с фласком? Он вообще развивается? Будут новые версии? Вот смотрю джанго постоянно новые версии выпускает, иногда к одной не успеваешь привыкнуть как что-то другое выходит. Смотришь на расписание новых релизов - оптимизЪм.
>>745299Это же микрофреймворк, там особо нечего развивать. Вся суть в сторонних библиотеках. Что тебе в нем не хватает? Или что не нравится?http://flask.pocoo.org/docs/dev/changelog/
>>745300Да как что, меня все устраивает. Захотел сделать мини-сайтик - сделал. Правда есть некоторые маленькие неточности в разделе документация. Врд и есть изменения, но док. местами не обновили. В джанго такого нет, там выходит новая версия, сразу все переписывается, ну я так заметил. Хотя ладно.
Господа, не знаю где спросить, поэтому спрошу в родном питонотреде. Как и на чем нынче принято интерфейсы для фронтенда пилить? Есть какие-нибудь библиотеки веб-гуя? Что лучше и проще к джанге присобачить? Ну и вообще направьте.
веб-гуй — remi. Для клиент-сайда пробовал реакт, нормалёк.
>>743868>comment.replace(' ', '_') можно заменять и другие символыpython remove non alphanumeric characters from string
Что делать с ебанутым кол-вом Button-ов? Создать универсальные метод и вызывать в цикле? Но как...https://ideone.com/3fdl4F
>>745356мб так? https://ideone.com/5r6etx
>>744798Бамп>>745198Ну окей, можешь остальное пояснить?
>>745371Таки дела.
>>745381UPD: К тому же этот вариант не работает а всего лишь заполняет последней кнопкой(9) все значения.
>>745381Ты серьезно? Ты зачем вообще это пишешь, если не понимаешь как это работает? https://ideone.com/5r6etx
>>745386НЕт, я не шучу. А ты?
>>745386Да в и зачем там +1?
https://2ch.hk/pr/res/745418.htmlhttps://2ch.hk/pr/res/745418.htmlhttps://2ch.hk/pr/res/745418.html
>>745377Переспросил в перекате.
>>745344>remiНеблохо, спасибо.
>>745437 -> >>745334Хотя все равно утонули.
>>745320react
А с питоном реально трактор завести? Смотрю в России вакансий не так уж много, не то что на всякий джава мобайл и фронтэнд. Но душа не лежит к этим направлениям.
>>745356Скажи пожалуйста, где там указывается внешний вид кнопок? Я делаю свой хеллоуворлд, у меня там кнопки как в win 98, а у тебя как в семерке.
нет ли смысла запилить питоноконфу?
>>745653все, понял, нужно было создавать ttk.
На пайтоне можно игрового бота написать для архиэйдж?
Через точку пишутся только методы строк, напримерstring.isalpha()?
>>746063Вообщем, почему так пишут len(str), а не str.len?
>>744438Аутист с pyinstaller 3-проблемами снова просит помощи у тебя, добрый анон, и у других шарящих. Екзешник, собранный со сторонними файлами (картинками) не запускается. Собираю на Шindows, в консоли ввожу pyinstaller -F -w 123.py Удаляю из кода все обращения к сторонним файлам - все работает, как я и хотел, собирается в единый файл, весит правда, пидор, 7 метров, ну да это ж петон плес Что еще нужно дописать, чтобы сторонние файлы упаковывались в экзешник? Или нужно сначало ебстись с spec-файлом? В документации нихера не понятно. Всем добра.
>>746066python data model гугли
>>746638и книжку fluent python
>>739205ты не вкатишься, ты слишком старыймимо местный долбоеб
Шалом, неверные!Скажите, посоны. Какие задания вам дают на работе? Чем конкретно вы занимаетесь на работе? Что именно кодите на пайтоне?
>>746248Я таки разобрался. Нужен кому-нибудь мануал по тому, как пейтон-скрипт засунуть со сторонними файлами и библиотеками в один экзе-файл? Могу на досуге напилить, если спрос есть.
>>749610django-хуянга, скриптики и всяк devops