Можно ли запускать Python без установки (без использования упаковщиков, таких как py2exe)?

#python #dll #installation #python-standalone

#python #dll #установка #python-standalone

Вопрос:

У нас есть сложный инструмент (закодированный на Python) для проверки и настройки среды. Он работает на различных версиях Windows. До сих пор мы использовали этот инструмент в компании. Однако теперь мы хотим, чтобы наши инженеры службы поддержки использовали его в дороге. Проблема в том, что у них не будет разрешений на установку Python на компьютерах клиентов.

Чтобы исправить эту ситуацию, мы рассмотрели такие утилиты, как py2exe, cx_freeze и PyInstaller. Несмотря на то, что они хороши, сгенерированный EXE-файл в некоторых ситуациях сталкивается с проблемами зависимости. Поэтому мы отказались от использования этих инструментов.

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

Комментарии:

1. Какие библиотеки DLL необходимо зарегистрировать?

2. python27.dll вот где все началось

3. Запуск WinPython на USB-накопителе должен работать, не так ли? Конечно, вы должны быть осторожны с путями и т. Д., Поскольку не будет никаких переменных окружения.

4. Решением может быть WinPython. Однако наше приложение не запускается из коробки, поскольку оно использует PyGTK. Я не нашел простого способа получить PyGTK с помощью WinPython. Другая проблема заключается в том, что WinPython нацелен на научные вычисления и имеет большой набор библиотек, которые нам могут не понадобиться.

Ответ №1:

Предположим, что ваш скрипт main.py ,

  • скопируйте все содержимое каталога python в каталог, в котором он находится
  • выполните поиск python*.dll в вашем каталоге Windows и найдите project/python
  • Создать project/main.bat :

main.bat

 "%~dp0/python/python.exe" "%~dp0/main.py" %*
  

Каталог проекта должен быть:

 project
├── python
|   ├── python.exe
|   ├── python27.dll
|   └── ...
├── main.py
└── main.bat
  

Теперь вызовите программу с помощью main.bat

Комментарии:

1. Я надеялся, что это сработает! К сожалению, это не так. Выдает ту же ошибку, что и раньше. Библиотека DLL python по-прежнему не зарегистрирована в Windows.

2. Найдите python*.dll в своем каталоге Windows и скопируйте его в project/python каталог.

3. Потрясающе, у меня это работает! Спасибо @napuzba. Для других, кто хочет попробовать это: обратите внимание, что python27.dll находится не в папке установки, а в C:WindowsSystem32 .