Pull to refresh

Comments 9

Вопрос в тему: есть в Питоне возможность, чтобы стандартные зависимости устанавливались сами из запущенного скрипта при первом запуске?
Чтобы вместо

import foo # First run "pip3 install foo"

было

install__if_missing_and_import foo(version="1.2.3")?

Что-то похожее на https://github.com/pomponchik/instld ? Также можно например перед импортом пакета через os.system или subprocess установить пакет с помощью pip: from os import system; system("pip install foo==1.2.3");

pip это обычный питоновский модуль. Поэтому можно как то так:

import pip

pip.main(('install', 'packname==version'))

Для Win есть портабельный (переносимый/портативный -- кому что приятней) проект WinPython. Он упоминается на официальном сайте Python'а. На первый взгляд, он тянет пакеты к себе в папку.

Docker - это волшебная палочка выручалочка, абсолютно поддерживаю!

Я привёл пример на базе win-7 , иногда похожее необходимо делать на win XP

А так - докер сила

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

Для этого есть несколько инструментов, например pyinstaller
https://pyinstaller.org/en/stable/

или cx_freeze https://cx-freeze.readthedocs.io/en/stable/

Ниет. В смысле, он туда определенную версию интерпретатора запихнет - и на ХПшке она работать не будет, да и кроссплатформенно собрать - не выйдет, насколько я помню.

Нееее... в моем понимании, "фрактал звиздеца" несколько более многогранен.

  1. А кто сказал, что приложение вот с этим набором зависимостей запустится на вот этой версии интерпретатора\ос?

    1. А какие из зависимостей можно задаунгрейдить не поломав все к чертям?

    2. А можно ли использовать более старую версию самого приложения\библиотеки?

  2. А что делать с зависимостями, которые требуют вот сборки кода? Ну, какой-нибудь драйвер для постгре?

    1. А есть ли версия вот этого вот драйвера под эту вот ХП?

    2. А будет старая версия работать с вот этой вот версией постгри (Привет, tls 1.3)?

Тут даже наличие интернета не всегда спасает, если что...

Контейнеризация приложений с рантаймом помогает... не всегда. В том плане что немае под XP доскеров да и под, например, mac m1 собирать надо отдельно. Пару раз неожиданно выручал даже не pyinstaller, а вовсе nuitka - но то прям ОЧЕНЬ такоЭ.

Sign up to leave a comment.

Articles