Python запуск скрипта на другом компьютере

Как запустить локальный скрипт Python на удаленной машине

У меня есть скрипт python на моей локальной машине. Есть ли способ запустить этот скрипт на удаленном компьютере. Я имею в виду скрипт python на локальном компьютере, но выполнение должно выполняться на удаленном компьютере и выводить результат на локальный компьютер.

Пожалуйста, добавьте некоторые детали относительно операционных систем, которые вы используете. Вы знакомы с SSH?

3 ответа

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

Итак, скажем, у вас есть локальный скрипт hello.py который выглядит так:

# 'hello.py' import os print os.system('hostname') 

Они вы можете нажать на скрипт и выполнить его следующим образом:

>>> import pathos >>> c = pathos.core.copy('hello.py', destination='guido.remote.com:~/hello.py') >>> s = pathos.core.execute('python hello.py', host='guido.remote.com') >>> print s.response() guido 0 >>> s.pid() 37429 

Там также ssh-туннелирование, настройка процессов демона, удаленный трассировка портов и устранение удаленных процессов. если вам это нужно.

pathos обеспечивает абстракцию удаленных команд, по умолчанию это ssh и scp . но легко видеть, что он делает.

>>> s.message 'ssh -q guido.remote.com "python hello.py"' >>> c.message 'scp -q -r hello.py guido.remote.com:~/hello.py' 

Вы можете найти решение для аналогичного вопроса здесь

По моей конкретной проблеме, с которой вы также можете столкнуться, у меня был этот локальный скрипт, который я хотел запустить на удаленной машине, используя одну из ее виртуальных окружений. Я добавил следующее к моему bashrc:

rpython ()< cat $1 | ssh [email protected] source /home/user/venv/bin/activate \; python - > 

Таким образом, я могу запустить rpython local_script.py . Итак, вот как это работает: cat $1 | pipe первый аргумент и ssh [email protected] source/home/user/venv/bin/activate \; python — ssh [email protected] source/home/user/venv/bin/activate \; python — venv копии через ssh, что было venv , запускает виртуальную venv виртуальных venv удаленных компьютеров и запускает local_script.py . Обратите внимание, что все, что local_script.py может в конечном итоге распечатать, возвращается к локальному stdout.

TL, DR — это все, что вы пишете после того, как ssh [email protected] запускается на пульте дистанционного управления. Если вы хотите передать несколько инструкций оболочки, разделите их на \; чтобы не путать вашу локальную оболочку.

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

Источник

Как перестать беспокоиться и установить Python-проект другу под Windows

Итак, вы закончили свою первую версию опенсорс проекта на Питоне, выложили её на Гитхаб, и даже написали честный ридми: «Требуется Python 3.10, поставьте зависимости через pip install -r requirements.txt «.

Читайте также:  Sublime text настройка для html

И. через какое‑то время вам звонит пользователь друг с вопросом: «Слушай, интересный проект, а как его под Windows поставить?»

Собственно, с этого момента у вас есть 3 варианта:

  1. Попытаться сэкономить всем время и попробовать упаковать ваш проект в EXE‑файл через утилиты типа pyinstaller или Auto PY to EXE. Минус: при сколь‑нибудь сложных зависимостях нужно будет ковыряться довольно долго, чтобы заставить EXE заработать. Второй минус: как вы думаете, на кого ляжет почетная обязанность собирать EXE‑шники после каждого апдейта кода?
  2. Попытаться объяснить другу, что такое python, GIT и как всё это поставить. Минус: возможны проблемы в отношениях с другом:))) (Вариант: поставить всё самому через дистанционный доступ, но он требует слишком много времени если пользователей друзей больше 5)
  3. Дописать под себя набор BAT‑файлов, о которых пойдет речь в статье, и которые:
    1. ставят сами Python и GIT в локальную папку проекта (в стиле conda);
    2. выкачивают свежую версию с Гитхаба (а также апдейтят её при необходимости);
    3. ставят нужные зависимости;
    4. можно прописать несколько сценариев запуска приложения;
    5. установленный проект можно перемещать в другие папки и между компами.

    Как я эти батники нашел

    Есть такой интересный опенсорс проект, который позволяет запускать текстовые нейросети на локальном компьютере с веб‑интерфейсом: https://github.com/oobabooga/text‑generation‑webui

    Проекты с нейросетями, как правило, это проекты с очень большим числом нетривиальных зависимостей. Например:

    • Вам нужно знать, нужно ли ставить версию torch с GPU ускорением от NVIDIA, или же надо ставить CPU‑версию.
    • Часто нужно скачивать какие‑то кастомные дополнительные Github‑проекты библиотеки.
    • Надо ставить нетривиальные версии библиотек (проект выше, например, использует кастомную сборку bitsandbytes под Windows, которая позволяет запускать 4-битные нейросети, требующие меньше памяти)

    И я был сильно удивлен, когда нашел проект от того же пользователя под названием one‑click‑installers, который решал все эти проблемы установки буквально в несколько BAT‑файлов.

    Собственно, я его установил (все заработало с первого раза), разобрался в BAT‑файлах, и они меня так впечатлили своей компактностью, что я даже достаточно быстро сделал подобный компактный инсталлятор для своего голосового помощника Ирины.

    Как это работает и как это настроить

    В качестве базового проекта рекомендую взять мой инсталлятор, а за нетривиальными случаями обращаться к оригинальному one‑click‑installer.

    Итак, есть два основных файла:

    1. Скачивает проект micromamba (компактная замена conda). (Вначале выводится предупреждение — путь не должен содержать пробелов и нелатинских букв/цифр.)
    2. Устанавливает указанные пакеты (в частности, я указываю python3.10 и git; в моем BAT‑файле есть еще выбор, установить ли тяжелый torch для Silero TTS, но вы можете этот выбор убрать) в installer_files.
    3. Активирует окружение
    4. Если репозитория вашего проекта ещё не существует — клонирует его с Гитхаба; если уже существует — пытается обновить с помощью git pull.
    5. Устанавливает или обновляет зависимости через call python -m pip install -r requirements.txt —upgrade . (У меня используются кастомные зависимости в call python ‑m pip install ‑r requirements_exe_runner.txt ‑upgrade, так что не забудьте поправить для своего проекта)

    Собственно, после install в идеале наш проект полностью готов к работе.

    run предельно простой:

    1. Он инициализирует окружение с нужными зависимостями
    2. Запускает нужный питон‑файл через call python run.py (или что вы там укажете)

    Также в проекте существует micromamba‑cmd.bat, который позволяет в интерактивном режиме зайти в текущее окружение и что‑то там подправить (например, поставить новые зависимости ручками если сильно нужно).

    Переносимость

    Установка переносимая; но после переноса в другое место будет выдавать ошибку «Micromamba not found» — потому что сформированные BAT‑файлы Micromamba содержат абсолютные пути.

    Для решения проблемы после переноса нужно удалить все BAT‑файлы из installer_files\mamba\condabin и запустить run.bat — BAT‑файлы будут перегенерированы.

    Выводы

    install.bat выполняет основную часть установки, ставя зависимости через Интернет, позволяет быстро обновлять проект до последней Git‑версии, и занимает всего 90 строк кода.

    Вот я с ним поработал и могу сказать — поправить его под свой проект занимает где‑то полчаса‑час (ну, вместе с тестированием мелочей, конечно).

    Источник

    Как перестать беспокоиться и установить Python-проект другу под Windows

    Итак, вы закончили свою первую версию опенсорс проекта на Питоне, выложили её на Гитхаб, и даже написали честный ридми: «Требуется Python 3.10, поставьте зависимости через pip install -r requirements.txt «.

    И. через какое‑то время вам звонит пользователь друг с вопросом: «Слушай, интересный проект, а как его под Windows поставить?»

    Собственно, с этого момента у вас есть 3 варианта:

    1. Попытаться сэкономить всем время и попробовать упаковать ваш проект в EXE‑файл через утилиты типа pyinstaller или Auto PY to EXE. Минус: при сколь‑нибудь сложных зависимостях нужно будет ковыряться довольно долго, чтобы заставить EXE заработать. Второй минус: как вы думаете, на кого ляжет почетная обязанность собирать EXE‑шники после каждого апдейта кода?
    2. Попытаться объяснить другу, что такое python, GIT и как всё это поставить. Минус: возможны проблемы в отношениях с другом:))) (Вариант: поставить всё самому через дистанционный доступ, но он требует слишком много времени если пользователей друзей больше 5)
    3. Дописать под себя набор BAT‑файлов, о которых пойдет речь в статье, и которые:
      1. ставят сами Python и GIT в локальную папку проекта (в стиле conda);
      2. выкачивают свежую версию с Гитхаба (а также апдейтят её при необходимости);
      3. ставят нужные зависимости;
      4. можно прописать несколько сценариев запуска приложения;
      5. установленный проект можно перемещать в другие папки и между компами.

      Как я эти батники нашел

      Есть такой интересный опенсорс проект, который позволяет запускать текстовые нейросети на локальном компьютере с веб‑интерфейсом: https://github.com/oobabooga/text‑generation‑webui

      Проекты с нейросетями, как правило, это проекты с очень большим числом нетривиальных зависимостей. Например:

      • Вам нужно знать, нужно ли ставить версию torch с GPU ускорением от NVIDIA, или же надо ставить CPU‑версию.
      • Часто нужно скачивать какие‑то кастомные дополнительные Github‑проекты библиотеки.
      • Надо ставить нетривиальные версии библиотек (проект выше, например, использует кастомную сборку bitsandbytes под Windows, которая позволяет запускать 4-битные нейросети, требующие меньше памяти)

      И я был сильно удивлен, когда нашел проект от того же пользователя под названием one‑click‑installers, который решал все эти проблемы установки буквально в несколько BAT‑файлов.

      Собственно, я его установил (все заработало с первого раза), разобрался в BAT‑файлах, и они меня так впечатлили своей компактностью, что я даже достаточно быстро сделал подобный компактный инсталлятор для своего голосового помощника Ирины.

      Как это работает и как это настроить

      В качестве базового проекта рекомендую взять мой инсталлятор, а за нетривиальными случаями обращаться к оригинальному one‑click‑installer.

      Итак, есть два основных файла:

      1. Скачивает проект micromamba (компактная замена conda). (Вначале выводится предупреждение — путь не должен содержать пробелов и нелатинских букв/цифр.)
      2. Устанавливает указанные пакеты (в частности, я указываю python3.10 и git; в моем BAT‑файле есть еще выбор, установить ли тяжелый torch для Silero TTS, но вы можете этот выбор убрать) в installer_files.
      3. Активирует окружение
      4. Если репозитория вашего проекта ещё не существует — клонирует его с Гитхаба; если уже существует — пытается обновить с помощью git pull.
      5. Устанавливает или обновляет зависимости через call python -m pip install -r requirements.txt —upgrade . (У меня используются кастомные зависимости в call python ‑m pip install ‑r requirements_exe_runner.txt ‑upgrade, так что не забудьте поправить для своего проекта)

      Собственно, после install в идеале наш проект полностью готов к работе.

      run предельно простой:

      1. Он инициализирует окружение с нужными зависимостями
      2. Запускает нужный питон‑файл через call python run.py (или что вы там укажете)

      Также в проекте существует micromamba‑cmd.bat, который позволяет в интерактивном режиме зайти в текущее окружение и что‑то там подправить (например, поставить новые зависимости ручками если сильно нужно).

      Переносимость

      Установка переносимая; но после переноса в другое место будет выдавать ошибку «Micromamba not found» — потому что сформированные BAT‑файлы Micromamba содержат абсолютные пути.

      Для решения проблемы после переноса нужно удалить все BAT‑файлы из installer_files\mamba\condabin и запустить run.bat — BAT‑файлы будут перегенерированы.

      Выводы

      install.bat выполняет основную часть установки, ставя зависимости через Интернет, позволяет быстро обновлять проект до последней Git‑версии, и занимает всего 90 строк кода.

      Вот я с ним поработал и могу сказать — поправить его под свой проект занимает где‑то полчаса‑час (ну, вместе с тестированием мелочей, конечно).

      Источник

Оцените статью