Подтвердить что ты не робот

Могу ли я как-то "скомпилировать" python script для работы на ПК без установки Python?

Итак, у меня есть Python script:

myscript.py

Я выполняю его следующим образом:

python D:\myscript.py

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

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

Это нормально, если он будет работать только в Windows.

EDIT:

После попытки compile.py получить эту ошибку:

Traceback (most recent call last):
  File "D:\stuff\compile.py", line 4, in <module>
    import py2exe
ImportError: No module named py2exe
4b9b3361

Ответ 1

Вот один из способов сделать это (для Windows, используя py2exe).

Сначала установите py2exe в окне Windows.

Затем создайте python script с именем compile.py, например:

import sys
from distutils.core import setup
import py2exe

entry_point = sys.argv[1]
sys.argv.pop()
sys.argv.append('py2exe')
sys.argv.append('-q')

opts = {
    'py2exe': {
        'compressed': 1,
        'optimize': 2,
        'bundle_files': 1
    }
}

setup(console=[entry_point], options=opts, zipfile=None)

Чтобы скомпилировать ваш Python script в исполняемый файл Windows, запустите этот script с вашей программой в качестве аргумента:

$ python compile.py myscript.py

Он выплюнет бинарный исполняемый файл (EXE) с интерпретатором Python, скомпилированным внутри. Затем вы можете просто распространять этот исполняемый файл.

Ответ 2

PyInstaller хорошо работает для меня, создавая разумно небольшие пакеты из-за использования upx. Его обнаружение зависимости было лучше, чем py2exe в то время. Похоже, что он не имеет много недавних разработок и, вероятно, не работает с 3.x.

Источник в репозитории является лучшей отправной точкой, чем пакет 1.4.

Также см. страницу wiki о работе с Python 2.6 +.

Из списка функций:

  • Упаковка программ Python в стандартные исполняемые файлы, которые работают на компьютерах без установленного Python.
  • Мультиплатформенность: работает под Windows (32-разрядная и 64-разрядная), Linux (32-разрядная и 64-разрядная) и Mac OS X (только 32-разрядная версия, см. MacOSCompatibility).
  • Multiversion: работает под любой версией Python с 1.5 до 2.7. ПРИМЕЧАНИЕ. Если вы используете Python 2.6+ в Windows, см. Python26Win.
  • Режим гибкой упаковки:
  • Единый каталог: создайте каталог, содержащий исполняемый файл, плюс все внешние двоичные модули (.dll,.pyd,.so), используемые программой.
  • Один файл: создайте один исполняемый файл, полностью автономный, который работает без какой-либо внешней зависимости.
  • Пользовательский: вы можете автоматизировать PyInstaller для выполнения любого режима упаковки, который вы хотите, с помощью простого файла script в Python.
  • Явная интеллектуальная поддержка многих третьих пакетов (для скрытых импортов, внешних файлов данных и т.д.), чтобы заставить их работать с PyInstaller из коробки (см. SupportedPackages).
  • Полная поддержка EGG с одним файлом: требуемые файлы .egg автоматически проверяются для зависимостей и в комплекте, а все функции, зависящие от яйца, поддерживаются также во время выполнения (точки входа и т.д.).
  • Частичный каталог Поддержка EGG: требуемые каталоги .egg автоматически проверяются для зависимостей и в комплекте, но функции, зависящие от яиц, не будут работать во время выполнения.
  • Автоматическая поддержка двоичных библиотек, используемых через ctypes (подробнее см. CtypesDependencySupport).
  • Поддержка автоматической бинарной упаковки через известный компрессор UPX.
  • Дополнительный режим консоли (см. стандартный вывод и стандартную ошибку во время выполнения).
  • Функции, специфичные для Windows:
  • Поддержка исполняемых файлов для подписи кода.
  • Полная автоматическая поддержка для ЭЛТ: нет необходимости вручную распространять MSVCR *.DLL, установщики переадресации, манифесты или что-то еще; настоящие однофайловые приложения, которые работают повсюду!
  • Выбираемый исполняемый значок.
  • Полностью настраиваемый раздел ресурсов версии и проявляется в исполняемом файле.
  • Поддержка создания COM-серверов.
  • Свойства, специфичные для Mac:
  • Предварительная поддержка пакетов (см. MacOSCompatibility)

Ответ 3

Вы хотите что-то вроде py2exe.

Ответ 4

Существует несколько решений, таких как py2exe, cx-freeze или (только для Mac OS X ) py2app.

Ответ 6

Перейдите в меню Notepad ++, плагины → Python Script → Показать консоль. В недавно открывшемся окне консоли, внизу типа..... execfile ('C:/path/to/your/python/file/code.py') # Использовать косую черту (/) вместо косой черты backwared. Нажмите Return или нажмите кнопку Run.