Ответы пользователя по тегу Python
  • Как установить модуль в python 3?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Совет: Отвыкайте ставить модули в общую кучу. Вместо этого используйте виртуальные среды. virtualenv, или модуль venv из стандартной библиотеки.

    Сделайте такое:
    1. создайте папку {your-project-name}
    2. cd {your-project-name}
    3. Запустите cmd.exe
    4. В открытой консоли выполнить "c:\python34\python.exe -m venv pyenv"
    5. Оставаясь в консоли выполните "pyenv\scripts\activate.bat"
    6. Распакуйте архив вашего patool
    7. Зайдя в папку архива выполнить 'python setup.py install'

    Возможно консоль cmd.exe придется запустить под админом. Есть небольшая вероятность, что это потребуется сделать
    Ответ написан
  • Поддерживает ли Python нативно графические интерфейсы?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Скачайте и посмотрите на Sublime Text
    Ответ написан
    Комментировать
  • ООП. Почему выводится none?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    /offtop: Рекомендую использовать ключевое слово __slots__ . Это позволит уменьшить размер объекта класса.
    Ответ написан
    1 комментарий
  • Ошибка Питона invalid syntax при написании пустой строки?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>while r=" "
    Если это было написано с целью проверить стрку на пустоту , то рекомендую заменить на:
    >>while not r:
    Ответ написан
    Комментировать
  • Как решить задачу в расстановке арифметических знаков на Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Недавно смотрел учебник по JavaScript на habrahabr.ru. Организован в виде набора постов на хабре. В разделе про рекурсию там было подобное решение. Посмотрите, возможно, это то что Вам нужно
    Ответ написан
    Комментировать
  • Прикладное программирование на Python реально?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Кажется Вы непонимаете что такое прикладное программирование. Вы уточните этот термин. Затем и вопрос отпадет ;)

    По делу:
    Проще перечислить где язык не применяется, чем где применяется. То что пользователю нужно ставить интерпретатор это не страшно! Пользовать решающий свою задачу поставит что угодно лишь бы программа решала его задачу полностью, качественно и в разумные сроки. Python позволяет писать различные программы. Применяется ученными, веб-программистами, взломщиками программ, специлистами исследующими сетевой трафик и др.
    Ответ написан
  • Мультипоточная запись в БД?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    /offtop: Прежде чем что-то писать мульти-тредное на Python настоятельно рекоменду прочитать про GIL. Это крайне важно!!! На хабре есть перевод статьи от Дэвида Бизли про устройство GIL. Настоятельно рекомендую прочесть.
    Ответ написан
    Комментировать
  • Почему не удается установить библиотеку - command 'cl.exe' failed?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Запрос в гугл #1: "what is cl.exe" дает на первой строчке "cl.exe is a tool that controls the Microsoft C and C++ compilers ".
    Запрос в гугл #2: "where i can get cl.exe" дает на первой же странички ссылку на тему на каком-то из форумов "Подскажите, пожалуйста, где можно скачать компилятор " и в этой же теме ссылка куда надо ткнуть чтобы поставить этот компилятор.

    Цена: 10 мин. гугления + время на установку.

    UPD:
    После установки компилятора нужно из cmd.exe запустить cl.exe. В ответ тулза cl.exe должна что-нибудь выдать на консоль. Если же будет, что cl.exe не распознан, тогда нужно будет подшаманить так, чтобы в переменную PATH был прописан путь до набора утиллит компилятора
    Ответ написан
    5 комментариев
  • Python. Можно ли присвоить имя программы непосредственно в самой программе?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    В Python все есть Объект! Этот объект привязывается к имени. Присвоейте новую строку этому имени и на этом Все!

    Python имеет традицию из Unix-мира гласящую "Если юзер решил отстрелить себе ногу, значит так надо!". Другими словами если Вы решили поменять __file__ у модуля, то Python-интерпретатор ничего Вам за это не сделает!

    import sys

    print(__file__)
    __file__ = 'asbasdfasdf'
    print(__file__)

    print(sys.argv[0])
    sys.argv[0] = 'dsfsdfasf'
    print(sys.argv[0])
    Ответ написан
    Комментировать
  • Что происходит за кулисами цикла for?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    На хабре есть отличнейший мануал "Code Like a Pythonista: Idiomatic Python". Перевод. Прочтите. Там есть ответы на многие Ваши вопросы, в том числе и на этот.

    Вот цитата из этого мануала:
    Объясню, как в действительности работает цикл for. Python смотрит на последовательность, указанную после ключевого слова in. Если это простой контейнер (как список, кортеж, словарь, множество или определенный пользователем), Python преобразует его в итератор. Если этот объект уже является итератором, Python использует непосредственно его.
    Затем Python многократно вызывает метод итератора next, связывает возвращаемое значение со счетчиком цикла (i в этом случае), и выполняет код тела цикла. Этот процесс повторяется снова и снова, пока не будет вызвано исключение StopIteration или выполнена инструкция break в теле цикла.
    Цикл for может включать условие else (иначе), код которого будет выполнен после выхода из цикла, но не после выполнения инструкции break. Эта особенность предоставляет очень изящные решения. Условие else не всегда и не часто используется с циклом for, но может нам пригодиться. Иногда else удачно выражает логику, которая вам нужна.


    UPD:
    Наткнулся на хорошую статью: Understanding Python's "for" statement
    Ответ написан
    4 комментария
  • Когда следует приступать к практике?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Абсолютно любая информация должна быть пройдена через пальцы. Даже элементарное 2+2 должно быть не мало раз набита руками! Чем больше практики тем лучше. А еще лучше с вопросами "А что если я тут вот ... так?" или "А если бы написал так ....?"
    Ответ написан
    Комментировать
  • Как в питон добавить стороннюю библиотеку?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Согласно документу easy_install / pip лучше Вам поступить общепринятым способом описаном по этой ссылке. Оно само должно скачать, а вы пока идите чай пить
    Ответ написан
    Комментировать
  • Где найти сообщество по интересам?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Frosty 87: А Вы не пробовали приобщить хоть кого-то из своего окружения к чему-то к чему хотели бы приобщить? Можно же научить, рассказать, попробовать вместе запилить! То что кто-то не программист это не плохо, может он хороший организатор и тогда "привет стартап". Может кто-то хочет научиться программированию, но не понимает с какого краю подступиться?

    Но прежде всего нужно спросить себя : "Какое именно сообщество я ищу? Для чего? Чего конкретно мне не хватает?"

    Есть такая поговорка : "Меняйся сам, изменится мир".
    Ответ написан
    Комментировать
  • Unittest в корне python проекта?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    У меня сделано так:
    1. Кладу все тесты в папку tests , которая в корне проекта
    2. Файлы с тестами называются так чтобы в начале имени было test_
    3. Написан такой вот код по запуску тестов:
    import unittest
        tests = unittest.TestLoader().discover('tests', pattern='test_*.py')
        unittest.TextTestRunner(verbosity=2).run(tests)

    4. У меня тесты рассортированы в подпапки\подпакеты по функциональности которую они тестируют
    Ответ написан
    Комментировать
  • Как внедрится в процесс?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    А какую цель Вы преследуете? Если автоматически анализ виндовых приложений, то почему не воспользоваться общеизвестными способами:
    1. WinDbg + pykd(pykd.blogspot.ru)
    2. Immunity Debugger

    можно попробовать посмотреть на:
    winappdbg.sourceforge.net
    Ответ написан
    Комментировать
  • Что необходимо установить для того, чтобы удобно программировать при изучении Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    "Без труда не вынуть рыбку из пруда" (с) не мое.
    Я к тому, что избегая одних трудностей не надо создавать другие. При изучении язык для Вас должно быть важным изучить язык так, чтобы Вы могли им пользоваться и мыслить в его терминах. Чтобы голова думала о решении проблемы, а не о том, как это можно выразить с помощью языковых конструкций. Исходя из этого думайте не о том как бы проще написать, а как закрепить языковые конструкции и идиомы в Ваши пальцы!

    Моя рекомендация: Python 3.4 + Sublime Text 3 + Far3 . Консоль и метод "пристального взгляда" в качестве отладочного способа привьет Вам понимание языка. Рекомендую так, потому что на первых порах Вам врядли удастся сделать очень большие приложения. А при небольших по размеру приложений пристальный взгляд и printf-отладка куда лучше закрепляет навыки чем быстрое тыкание в IDE
    Ответ написан
    Комментировать
  • Что делать с ошибками в logging.Handler?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Зарегистрировать не только SMTPHandler но и файловый.
    Ответ написан
  • Как тестировать cmd скрипты на python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Тестировать рекомендую на базе unittest модуля.
    Мои рекомендации:
    1. Тесты часто ломаются с абсолютными путями. Вывод: заготовить заранее шаблоны, которые относительно какого-либо каталога. А перед проверкой "действительный" результат подредактировать путем вычленения корневой директории
    2. Тесты часто ломаются связанные с датой. Вывод: Перед тестом задать дату от которой отталкиваться и смотреть на "не более N секунд" или "дата1 не больше даты2, которая 2 строчками ниже" и т.д. и т.п.
    3. Тесты часто ломаются если меняется IP . Вывод: привязываться только к тому что есть IP и что он рабочий, но какое его значение "фиалетово" или задать диапазон в которых он выделяется

    Наборы:
    1. Одна функциональность - один набор
    2. Если функциональность под разными углами смотрите все равно это один набор, но разные тесты
    3. В тестах чаще думайте о вынесении конфигурации куда-либо в словарь, чтобы можно легко было написать новый тест

    Мой вам совет: Если тест уже ничего не тестирует, не бойтесь мысли "Я же его столько писал, столько времени потратил", удалите его! Он свое отслужил.
    Второстепенный совет: Всегда и как можно чаще просматривайте тесты на хрупкость и актуальность на "сегодняшний момент"
    Ответ написан
    Комментировать