Архив рубрики: Публикации

Как создать исполняемые файлы для Python (от .PY до .EXE)

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

Например, если у вас есть друзья или коллеги, с которыми вы хотите поделиться своей программой, или если вы хотите создать исполняемый файл, чтобы брать его с собой, не беспокоясь о настройке системы каждый раз, когда вам придется ее использовать, эта статья — то, чего вы ждали!

Для этого мы будем использовать инструмент под названием pyinstaller.

Pyinstaller отлично работает как в Windows, так и в Linux и Mac OS, и поэтому все команды, которые мы покажем вам в этой статье, будут такими же, что и вам, независимо от того, в какой операционной системе вы находитесь.

Также очень важно помнить, что pyinstaller не является кросс-компилятором, или, как многие из вас уже предполагали, вы можете создавать исполняемые файлы только для используемой вами операционной системы.

Если вы хотите создать файл .exe, например, а затем исполняемый файл для Windows, вы можете сделать это только из Windows. То же самое относится к файлам .app, которые можно использовать в Mac OS, и для исполняемых файлов Linux.

Процедура создания наших приложений действительно очень и очень проста: внутри виртуальной среды, которую мы используем с нашим скриптом Python, мы даем команду:

pip install pyinstaller

 

После того, как это будет сделано, мы можем использовать его как любое программное обеспечение в командной строки, точно так же, как мы устанавливаем модули через pip:

pyinstaller script_name.py --onefile

 

Давайте посмотрим на вывод в папке, над которой мы работаем, и увидим, что были созданы некоторые новые файлы и папки.

Единственный файл, который нам понадобится, файл, который нас интересует и который мы затем можем передать, будет находиться в папке dist.

Как видите, все работает отлично, и мы можем использовать программу без необходимости знать, как использовать Python, как его настроить, как создать виртуальную среду, установить необходимые зависимости и так далее!

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

Если вы работаете в Windows и генерируете исполняемый файл для программы с графическим интерфейсом, как в этом случае, я предлагаю вам добавить еще один вариант:

pyinstaller script_name.py --noconsole --onefile

 

Опция —noconsole гарантирует, что единственным окном, отображаемым в этих случаях, является графический интерфейс вашей программы, поскольку по умолчанию Windows также открывает системный терминал, который останется активным во время работы программы, что может вызвать путаницу, особенно для менее опытных пользователей.

Мы советуем вам делать тесты и экспериментировать самостоятельно, чтобы полностью понять, что мы имеем в виду.

Эта опция вам не понадобится, если вы обнаружите, что создаете исполняемые файлы для простых сценариев, которые можно использовать из терминала по понятным причинам.

Удачного кодирования! : D



2019-12-10T00:14:46
Python

🐧 Red Hat Enterprise Linux 7 и CentOS 7 критическое обновление безопасности ядра

Red Hat и CentOS объявили о выпуске важных обновлений безопасности ядра для своих семейств операционных систем Red Hat Enterprise Linux 7 и CentOS Linux 7.

Сообщается, что обновления устраняют две дыры в безопасности и многие другие ошибки.

В частности, новое обновление безопасности ядра Linux устраняет уязвимости CVE-2019-14821 и CVE-2019-15239.

Среди них CVE-2019-15239 может привести к тому, что локальные злоумышленники вызовут несколько условий «use-after-free», что приведет к сбою ядра или потенциальному повышению привилегий.

Кроме того, обновление ядра устраняет многочисленные ошибки, в том числе отсутствие информации о SCSI VPD для дисков NVMe, которая нарушает InfoScale, разыменование нулевого указателя при check_preempt_wakeup 0x109, pick_next_task_rt panuc, ошибка «Обнаружено зависание модуля Tx» с сбросом адаптера, нарушенная балансировка нагрузки через VF LAG конфигурацию, проблемы безопасности в драйвере crypto vmx, XFS зависает при получении xfs_buf, ошибку, где виртуальная машина зависает во время open_posix_testsuite и многие другие.

 



2019-12-09T11:53:33
Закрытие уязвимостей

Нет Numpad? Нет проблем! Как получить цифровую клавиатуру в Windows

Вы купили ноутбук или мини-клавиатуру и обнаружили, что скучаете по своей цифровой клавиатуре? Многие приложения Windows работают лучше с цифровой клавиатурой, и может быть легко недооценить ее использование, пока она не исчезнет. Но не всем нужна полноразмерная клавиатура, и очень немногие ноутбуки оснащены цифровыми клавиатурами.

Тем не менее, существует множество способов использовать цифровую клавиатуру на вашем компьютере, даже если на клавиатуре ее нет. Windows предлагает встроенные решения, и дополнительные возможности существуют и за пределами вашего ПК. Если вам нужна цифровая клавиатура для вашего ноутбука или клавиатуры, эти решения будут соответствовать вашим потребностям.

1. Экранная клавиатура Windows 10

На экранной клавиатуре в Windows 10 есть виртуальная цифровая клавиатура, которую вы можете использовать. Несмотря на то, что настраиваемые параметры экранной клавиатуры не всегда бывают такими же быстрыми, как у цифровой клавиатуры, они делают ее достойным эмулятором цифровой клавиатуры.

Чтобы получить доступ к экранной клавиатуре, вы можете выбрать несколько разных маршрутов. Самый быстрый маршрут включает нажатие клавиши с логотипом Windows + Ctrl + O, чтобы открыть экранную клавиатуру. Вы также можете включить или выключить экранную клавиатуру в любом месте с помощью того же сочетания клавиш.

Если вы предпочитаете пройти через настройки Windows, выполните следующие действия:

  1. Нажмите кнопку «Пуск» в Windows.
  2. Нажмите Настройки.
  3. Прокрутите вниз и нажмите Легкость доступа.
  4. На левой боковой панели прокрутите вниз до пункта « Взаимодействие».
  5. Нажмите на клавиатуру.
  6. В разделе «Использование экранной клавиатуры» переместите ползунок в положение «Вкл.».
  7. Закройте или сверните окно.

Когда появится экранная клавиатура, цифровой клавиатуры не будет. Вам нужно будет нажать кнопку «Параметры» в правом нижнем углу и установить флажок «Включить цифровую клавиатуру».

Наконец, нажмите кнопку NumLock, чтобы вызвать клавиатуру.

Теперь, когда вам нужно набрать число на цифровой клавиатуре, просто нажмите его на экранной клавиатуре. Если вы выберете опцию Наведите курсор на клавиши, вы также можете просто навести курсор на клавишу вместо щелчка мышью. Регулируя продолжительность наведения, вы также можете настроить время, необходимое для его регистрации в качестве нажатия.

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

2. Эмуляторы цифровой клавиатуры

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

Эмулятор Numpad предлагает множество опций, в том числе возможность масштабировать размер кнопки, изменять отображаемые клавиши на цифровой клавиатуре и размещать специальные символы, используя альтернативные коды без реальной цифровой клавиатуры.

Если вам не нужны какие-либо настройки, виртуальная цифровая клавиатура работает так же гладко, как и экранная клавиатура Windows.

Скачать: Эмулятор Numpad (бесплатно)

3. Ноутбук NumLock

Многие ноутбуки решают проблему отсутствия цифровой клавиатуры, включая скрытую цифровую клавиатуру, активируемую клавишей NumLock. Числа обычно выделяются цветом, отличным от цвета обычных клавиш (обычно серого или синего цвета). Если вы пытаетесь найти их, они часто разделяют клавиши 7, 8 и 9 в верхней строке номера.

Чтобы активировать цифровую клавиатуру, найдите клавишу блокировки номера (обычно обозначенную NumLock , Num Lk или Num ). Найдя его, найдите клавишу Fn или Alt . Если цвет клавиши Fn или Alt совпадает с альтернативными номерами, нажмите ее вместе с клавишей блокировки номера.

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

4. Цифровые планшеты для iPhone и iPad

Есть несколько опций приложения, которые позволяют использовать ваш iPhone или iPad в качестве эмулятора цифровой клавиатуры, но не многие функции поддерживают Windows.

NumPad поддерживает Windows до тех пор, пока вы используете VNC-сервер, например TightVNC, для подключения к вашему компьютеру. В то время как приложение для iOS стоит небольшой суммы, оно все же дешевле и экономит больше места, чем внешняя цифровая клавиатура.

Загрузить: Numpad ($ 3.99)

Скачать: TightVNC (бесплатно)

5. Использование AutoHotKey в качестве цифровой клавиатуры

Если вам нужно встроенное решение, не требующее экранной клавиатуры или ноутбука, AutoHotKey — отличное решение.

Вот скрипт, который позволит вам использовать клавишу Caps Lock для отправки ваших цифровых клавиш в качестве цифровых клавиш клавиатуры:

SetCapsLockState, AlwaysOff

#If GetKeyState("CapsLock", "P")



1::Numpad1

2::Numpad2

3::Numpad3

4::Numpad4

5::Numpad5

6::Numpad6

7::Numpad7

8::Numpad8

9::Numpad9

0::Numpad0

Этот скрипт не позволяет вашей клавише Caps Lock выполнять свою обычную функцию, но как часто вы все равно используете эту клавишу?

Если вы хотите использовать клавишу Caps Lock в качестве переключателя для отправки клавиш цифровой клавиатуры, замените первые две строки этой единственной:

#If GetKeyState("CapsLock", "T")

Теперь, когда включена функция Caps Lock, ваши номера будут работать как цифры с клавиатуры.

Вы можете делать всякие полезные вещи с AHK и numpad. Например, мне нужно было создать маркеры в Excel, что вы можете сделать с помощью Alt + Numpad 7 . У меня нет цифровой клавиатуры, поэтому я написал скрипт, который заставлял Alt + # отправлять как Alt + Numpad # (!7::!Numpad7). Если вы готовы экспериментировать, вы можете решить практически любую проблему.

6. Купите Внешний Numpad

Если вам нужно много использовать цифровую клавиатуру, вы можете использовать эту опцию. Внешние цифровые клавиатуры — это то, на что они похожи: маленький цифровой блок, который вы подключаете к компьютеру через USB или Bluetooth.

Хотя эта опция стоит больше всего, она упрощает использование цифровых кнопок на вашем ноутбуке. Физическая клавиатура позволяет бесконечно быстрее набирать много цифр.

Нет цифровой клавиатуры? Нет проблем!

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



2019-12-09T10:37:44
Вопросы читателей

Как полностью удалить Microsoft Teams на Windows 10

Хотя Microsoft Teams — отличная программа для повышения производительности, есть одна проблема. Если вы решите удалить приложение из Windows 10, оно будет автоматически переустанавливаться после перезагрузки вашего устройства.

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

Это означает, что для окончательного удаления команд Microsoft вам также необходимо удалить установщик всей системы.

В этом руководстве вы узнаете, как правильно удалить Microsoft Teams из Windows 10.

Чтобы окончательно удалить Microsoft Teams в Windows 10, выполните следующие действия.

  1. Откройте Настройки.
  2. Нажмите на приложения.
  3. Нажмите на приложения и функции.
  4. В разделе «Приложения и функции» выберите пункт «Команды Microsoft».
  5. Нажмите кнопку Удалить.

  6. Нажмите кнопку Удалить еще раз.
  7. В разделе «Приложения и функции» выберите пункт «Инсталлятор для всей команды».
  8. Нажмите кнопку Удалить.
  9. Нажмите кнопку Удалить еще раз.

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



2019-12-09T10:23:43
Вопросы читателей

NodeJS против Python: сравнение, которое нужно знать

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

 

Python: плюсы, минусы и варианты использования

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

У Python одно из крупнейших сообществ, а это значит, что вы получите всю необходимую поддержку.

NodeJS против Python: сравнение, которое нужно знать

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

 

Python. Преимущества

Python имеет много преимуществ, которые облегчают разработку в разнообразных проектах, от стартапов до крупных корпоративных платформ. Вот некоторые из самых выдающихся:

 

Python сокращает время выхода на рынок

Python позволяет разработчикам выполнять работу с меньшим количеством строк кода, чем схожие объектно-ориентированные языки. Кроме того, большинству разработчиков также удобно переключаться между Java и Python (и поэтому вы видите, что они используются в тандеме). Python предлагает полное обслуживание, где ошибки могут быть устранены в течение нескольких минут. С его компактным синтаксисом легко работать, а также легко отлаживать

Благодаря методологии быстрой разработки Python, которая позволяет вам поддерживать несколько итераций одновременно, и принципу DRY (не повторяйте себя), который означает, что вы можете повторно использовать части кода.

 

Синтаксис Python

Python имеет простой синтаксис, поэтому проще выразить логику в несколько строк кода, что, в свою очередь, позволяет легко читать и отлаживать код. Это также достаточно просто для понимания клиентов, что делает сотрудничество более удобным.

 

Python имеет широкий спектр инструментов разработки

Sublime Text, популярный редактор кода, обеспечивает поддержку кодирования Python, а также дополнительные функции редактирования и расширения синтаксиса. Мощные веб-инфраструктуры упрощают процесс и позволяют разработчикам сосредоточиться на логике ваших приложений. Одним из таких примеров является Django, который представляет собой полнофункциональную инфраструктуру для разработки всевозможных приложений, оптимизируя время, необходимое для завершения проекта.

 

Python имеет большое сообщество

Сравнивая Python и Node.js, Python является более зрелым языком с открытым исходным кодом и имеет одно из крупнейших пользовательских сообществ. В нем невероятное количество участников, от младших до опытных. Это означает, по крайней мере, две вещи: легко найти разработчиков, и вы получите активное, поддерживающее сообщество, которое стремится делиться решениями и улучшать язык.

Уже более 25 лет разработчики имеют доступ к высоким функциональным возможностям и обширной поддержке библиотек. Python также предлагает несколько расширенных веб-API, которые включают в себя следующее для серверной части:

  • Django
  • Flask
  • Pyramids

В качестве внешнего интерфейса вы можете использовать API-интерфейсы Tkinter/PySide. Он также очень переносим, ​​поскольку его можно использовать как для мобильных устройств, так и для Интернета, с широким разнообразием веб-сценариев и операций по соскобам.

 

Python. Минусы

Python отлично подходит для большинства типов проектов, но у него есть пара ограничений:

 

Python однопоточный

Как и другие интерпретируемые языки программирования, Python имеет более медленную скорость выполнения по сравнению со скомпилированными языками программирования. Он не подходит для тех приложений, которые требуют сложных математических вычислений или любого проекта, где скорость является главным требованием.

 

Не подходит для мобильных компьютеров

Python отлично подходит для разработки серверных и настольных платформ, но считается слабым для мобильных компьютеров. Вот почему очень мало приложений для смартфонов написано на Python.

 

NodeJS: плюсы, минусы и варианты использования NodeJS

Node.js — это среда, которая позволяет использовать JavaScript как для внутренней, так и для внешней разработки, что решает некоторые проблемы совместимости. Он был запущен в 2009 году (не так давно) и неуклонно набирает популярность.

NodeJS против Python: сравнение, которое нужно знать

 

Node.js. Плюсы

Сравнивая Python и Node.js для веб-разработки, Node может похвастаться несколькими преимуществами:

  • Node.js обеспечивает высокую производительность.

    Сравнивая скорость, вы обнаружите, что первая быстрее. Node.js основан на движке Google V8, что делает его пригодным для разработки чат-ботов и аналогичных приложений реального времени.

 

Node.js. Минусы

  • Node.js требует четкой архитектуры.

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

    высокой загрузкой процессора. Тяжелый вычислительный запрос блокирует обработку всех других задач и замедляет работу приложения, написанного на Node.
  • Недоразвитая документация

    В отличие от Python, который имеет исчерпывающую и актуальную документацию, документация Node.js отсутствует. Плюс, нет никаких основных библиотек и инструментов. Есть слишком много альтернатив, поэтому не всегда понятно, какой из них выбрать.

 

Вывод

Трудно сказать, что один язык программирования лучше другого, потому что все относительно. Что лучше для вашего проекта, будет зависеть от опыта вашей команды и конкретных требований проекта. У них обоих есть свои преимущества и недостатки, и они используются для различных видов проектов. Поэтому, когда вы выбираете между Node.js или Python, вам нужно рассмотреть все плюсы и минусы, чтобы решить, какой из них наиболее подходит для вашего проекта.



2019-12-08T21:11:17
Python

Python: __name__ == «__main__»

Вы видите это везде.

Если вы некоторое время программировали на Python или просто просматривали репозитории Python Github, вы, вероятно, натолкнулись на этот фрагмент кода.

if __name__ == '__main__':

  # do something

 

Он вездесущий.

Фактически, именно столько раз этот фрагмент кода появляется в Github!

Python: __name__ == «__main__»

18 миллионов + раз!

Итак, без дальнейших церемоний, давайте изучим, что именно делает этот фрагмент кода.

 

Что такое __name__?

__name__ — это просто встроенная переменная в Python, которая оценивает имя текущего модуля.

Чтобы полностью понять, что такое __name__ и как оно используется, давайте рассмотрим ряд примеров.

 

Пример 1

Давайте создадим простой скрипт Python в файле с именем test.py

# test.py

print("__name__ в test.py имеет значение " + __name__)

 

Эта строка будет выводить переменную __name__ на экране, чтобы мы могли ее изучить.

Давайте запустим этот скрипт из терминала и посмотрим, что мы получим.

$ python test.py

 

Вот вывод, который вы увидите на экране.

$ python3 test.py

__name__ в test.py имеет значение __main__

 

Из этого можно сделать вывод, что в этом примере переменной __name__ было присвоено строковое значение __main__

Теперь давайте посмотрим на немного другой пример.

 

Пример 2

Давайте создадим новый файл test2.py  в том же каталоге, что и test.py

В этом новом файле давайте импортируем test, чтобы мы могли проверить переменную __name__ в test.py, а также напечатаем переменную __name__ в test2.py

# test2.py

import test



print("__name__ in test2.py имеет значение " + __name__)

 

Если вы запустите скрипт test2.py из терминала, это то, что вы увидите на своем экране.

$ python3 test2.py

__name__ in test.py имеет значение test

__name__ in test2.py имеет значение __main__

 

Хм, интересно, так что же происходит?

По сути, происходит то, что  __name__   устанавливается на уровне модуля.

Устанавливается на  имя  модуля. Другими словами, для каждого модуля в вашем коде, __name__ будет установлен на это имя модуля.

А для точки входа выполнения, основного сценария Python, переменная __name__будет установлена ​​в __main__

Это круто и все, но как эта специальная переменная используется на практике?

 

Как __name__ используется в реальных приложениях?

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

Например, давайте создадим фиктивный модуль hello.py, который другие смогут импортировать в свои собственные сценарии или могут напрямую выполнить его, если захотят.

Вот что должен делать этот модуль.

Если вы выполняете модуль напрямую, он должен напечатать Привет, AndreyEx на экране.

Но если вы вместо этого импортируете его, он может предоставить вам функцию hello(), где вы можете контролировать, кого приветствовать.

# hello.py

def hello(name):

  print(f"Привет, {name}!")



if __name__ == '__main__':

  hello('AndreyEx')

 

Теперь давайте создадим основной скрипт main.py, который будет импортировать модуль hello.

# main.py

from hello import hello



hello('Destroyer')

 

Как вы думаете, что произойдет, если мы напрямую запустим hello.py ?

Мы просто получаем Привет, AndreyEx! на экране, так как условие if внутри модуля hello будет выполнено!

$ python3 hello.py

Привет, AndreyEx!

 

Как насчет того, чтобы вместо этого мы выполним main.py?

Теперь мы получим только Привет, AndreyEx! напечатано на экране.

$ python3 main.py

Привет, Destroyer!

 

Но что, если мы не включили условие if __name__ == ‘main’ в модуль hello ?

Если вы не включили условие if в свой модуль, вы получите этот нежелательный результат при запуске основного скрипта.

$ python3 main.py

Привет, AndreyEx!

Привет, Destroyer!

 



2019-12-06T19:10:46
Python