Установите Python 2.6 без использования установщика на Win32 - PullRequest
18 голосов
/ 21 апреля 2010

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

Я сделал следующее:

  1. Скопируйте python.exe, python26.dll, msvcr90.dll и Microsoft.VC90.CRT.manifest
  2. Zip весь каталог в каталоге LIBs как python26.zip
  3. Скопируйте все необходимые файлы dll / pyd в каталог DLL.

Кажется, что это работает, но когда я заменяю python26.zip на другое имя, такое как pythonlib.zip, он больше не может найти библиотеку Python.

  • Вопрос 1: Что за магия стоит за именем python26.zip? Python автоматически находит библиотеку внутри python26.zip, но не с другим именем?
  • Вопрос 2: Если у меня есть python26.zip в том же каталоге, где находится python.exe / python26.dll, мне не нужно добавлять путь sys.path.append (ПУТЬ К python26.zip). Это правильно?

Python имеет встроенные библиотеки, и sys является одной из них. Я думал, что смогу использовать sys.path, чтобы указать на любую библиотеку Python в ZIP-файле, которая мне нужна. Но, что удивительно, если я использую имя библиотеки как Python26.zip, это просто сработало. Почему это так?

Ответы [ 6 ]

25 голосов
/ 21 апреля 2010

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

Существует версия Python 2.5.4, 2.6.1 и 3.0.1.

13 голосов
/ 24 июля 2015

Из Блог Сильвен Пуанто :

Процедура на самом деле очень проста, просто скачайте установщик MSI с http://www.python.org/getit/ и введите команду:

C:\development\apps>msiexec /a python-3.3.2.msi /qb TARGETDIR=C:\development\apps\python33

Его пример использует msiexec (он же MSI Administrator Installer для вас, пользователей UniExtract), чтобы принудительно извлечь экстракт в TARGETDIR. Вы заметите, что там - это внутренний установщик, который вы удаляете.

РЕДАКТИРОВАТЬ: Кроме того, вы также можете сделать его тихим, но делать это каждый раз, когда вы хотите использовать Python, кажется глупым. Просто распакуйте в tempdir, а затем удалите его, когда они удалят его.

PS: я не видел, сколько это было лет! : D

10 голосов
/ 21 апреля 2010

Я посмотрел исходный код интерпретатора Python и провел несколько экспериментов. И я обнаружил, что интерпретатор Python добавляет «СПРАВОЧНИК PYTHONXXX.DLL + pythonXXX.zip», несмотря ни на что. XXX - версия интерпретатора Python.

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

6 голосов
/ 13 октября 2014

Другой вариант - установка WinPython . Он использует установщик, но не требует прав администратора (протестировано в Windows 7). В отличие от Portable Python, он даже имеет версию Python 3.3.5.

3 голосов
/ 21 апреля 2010

Другим вариантом может быть PyInstaller , который будет создавать кроссплатформенные автономные приложения Python. С домашней страницы:

PyInstaller - это программа, которая преобразует (упаковывает) программы Python в отдельные исполняемые файлы под Windows, Linux и Mac OS X. [...] Основная цель PyInstaller - совместимость с сторонними пакетами -of коробки. Это означает, что в PyInstaller все необходимые приемы для работы внешних пакетов уже интегрированы в сам PyInstaller, так что пользовательское вмешательство не требуется. Вам никогда не придется искать хитрости в вики и применять пользовательские изменения к своим файлам или сценариям установки. Например, библиотеки, такие как PyQt и Matplotlib, полностью поддерживаются, без необходимости обрабатывать плагины или внешние файлы данных вручную. Проверьте наш список совместимости SupportedPackages.

2 голосов
/ 21 апреля 2010

py2exe позволит вам скомпилировать скрипт Python в исполняемый файл Windows. Он может работать или не работать лучше, чем PortablePython, но, возможно, он может быть немного чище в отношении количества файлов, которые вам нужно распространять для вашей программы «за кулисами».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...