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

Обновлено: 08.07.2024

Программа на Python может запускать другие программы с помощью функции Popen() (от process open) встроенного модуля subprocess. В качестве аргумента функция принимает имя программы, которую нужно запустить:

Возвращаемое значение представляет собой объект Popen , имеющий два полезных метода: poll() и wait() .

Метод poll() возвращает значение None , если в момент его вызова процесс все еще выполняется. Если же процесс к этому моменту завершен, то он возвращает код завершения процесса. Код заверешения служит индикатором того, завершился ли процесс без ошибок (код равен нулю) или же его завершение было вызвано ошибкой (ненулевой код).

Метод wait() ожидает завершения запущенного процесса, прежде чем продолжить выполнение основной программы. Возвращаемым значением метода является целочисленный код завершения процесса.

Сначала мы открываем процесс блокнота, затем проверяем, возвращает ли метод poll() значение None . Это означает, что процесс все еще выполняется. После этого закрываем блокнот и еще раз проверяем, возвращает ли метод poll() значение None . Теперь оба метода, wait() и poll() возвращают нулевое значение, что указывает на завершение программы notepad.exe без ошибок.

Передача аргументов командной строки

Процессам, создаваемым с помощью функции Popen() , можно передвать аргументы командной строки. Для этого функции Popen() надо передать список в качестве единственного аргумента. Первой строкой в этом списке должно быть имя исполняемого файла программы, которую надо запустить. Все последующие строки — это аргументы командной строки, которые будут переданы программе при запуске.

Здесь мы не только запускаем приложение notepad.exe , но и открываем файл readme.txt .

Открытие файлов программ по умолчанию

Двойной клик на иконке файла с расширением .txt позволяет автоматически запустить приложение, ассоциированное с этим расширением. Функция Popen() также может открывать файлы подобным образом:

В каждой операционной системе есть программа, выполняющая те же функции, что и двойной клик на иконке файла. В Windows это программа start , в Ubuntu Linux — программа see .

Как запустить программу на другом компьютере?
Есть комп вин 7 64, на нем стоит прога для 64, запускается через файл *.cmd Как можно запустить.


Как запустить программу на другом компьютере?
Написал я приложение, хочу чтобы пользовались на другом компьютере. Как это лучше осуществить? Не.

Как запустить программу на другом компьютере?
Создаём пустой проект windows form. Что надо выставить в компиляторе что бы программа 1).

Как запустить ЧЕРТОВУ программу на другом компьютере?
Понимаете. Я потратил 4(. ) чертовых дня на эту проблему. Прошел все круги ада, все сделал! А.

Если на другом ПК установлен интерпретатор, то просто запустить. Ну а если не установлен, то установить и запустить. На маке и ОС на ядре линукс, интерпретатор идёт из коробки. На винде надо устанавливать. а что надо установить, чтобы пошел но без pycharm
как выглядит этот интерпретатор в минимальном моменте так сказать. я загрузил уже давно. если я запускаю через него тот файл который отлично работает на pycharm(файл с расширением py)
просто на мгновение открывается темное окно и все

Добавлено через 2 минуты

Решение

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

который запускается простым перетаскиванием скрипта на файл батника.

а что такое вообще это PATH

Добавлено через 1 минуту
да. запустилось бат. это надо же. чудо, чудо!

Как запустить программу на другом компьютере, где нет delphi?
Здравствуйте. Давно волнует проблема, на других компах где никогда не была установлена delphi не.

Как на питоне скачать файл из Интернета и запустить его?
Как на Питоне скачать файл из Интернета и запустить его? заранее благодарен!

Как запустить 2 функции парраллельно в телеграм боте на питоне?
Всем привет. Я сделал парсер-бота в телеге который парсит валюту с гугла. Вопрос: Как мне сделать.

Запустить внешнюю программу в другом сеансе средствами Powershell
Добрый день! Подскажите, решил ли кто, как можно выполнить программу, код из под другой сессии в.

Какие параметры проекта задавать, чтобы программу можно было запустить на другом компьютере?
Какие параметры проекта задавать чтобы программу можно было запустить на другом компьютере? Что.

Я работаю над проектом Python как на моем рабочем, так и на домашнем компьютере. GitHub сделал процесс довольно простым.

Но у меня проблема с файлом pyvenv.cfg в моей папке venv . Поскольку мой Python SDK имеет другой путь к файлу на моем рабочем компьютере по сравнению с моим домашним компьютером, мне приходится вручную заходить в pyvenv.cfg , чтобы изменить путь к файлу home = C:\Users\myName\. каждый раз, когда я извлекаю обновленную версию моего проекта из мой другой компьютер, иначе переводчик не работает.

Кто-нибудь знает решение этой проблемы?

2 ответа

Как подтверждено в комментариях, вы добавили папку виртуальной среды в свой проект и включили ее в файлы, которые вы размещаете на GitHub.

Как правило, это плохая идея, поскольку она частично сводит на нет цель создания виртуальной среды. Ваша виртуальная среда будет содержать пакеты, специфичные для платформы и конфигурации машины, на которой она находится - вы могли бы разрабатывать Linux на одной машине и Windows на другой, и у вас были бы большие проблемы, чем просто одна строка в файле конфигурации.

Что ты должен делать:

  • создать виртуальную среду в папке за пределами вашего проекта / исходной папки.
  • предполагая, что вы используете pip , вы можете запустить pip freeze > requirements.txt , чтобы создать папку requirements.txt , которую затем можно использовать в другой системе с pip install -r requirements.txt для воссоздания той же виртуальной среды .

Все, что вам нужно сделать, это поддерживать этот requirements.txt в актуальном состоянии и обновлять виртуальные среды на любом компьютере всякий раз, когда он изменяется, вместо того, чтобы загружать его через GitHub.

Более подробно простой пример (для Windows, очень похож на Linux):

Поскольку вы говорите, что используете PyCharm, это все еще намного проще, просто убедитесь, что среда, созданная PyCharm, находится за пределами вашей папки проекта. Мне нравится хранить все мои виртуальные среды в одной папке с именами venv, соответствующими именам проектов.

Вы по-прежнему можете создать requirements.txt в своем проекте, и когда вы перетаскиваете проект на другой компьютер с PyCharm, просто сделайте то же самое: создайте venv вне папки проекта. PyCharm распознает, что в файле требований отсутствуют пакеты, и предложит установить их за вас.

Вы не должны хранить полный virtualenv в системе управления версиями, поскольку чаще всего он намного больше, чем ваш код, и там могут быть биты и бобы, специфичные для платформы и интерпретатора.

допустим, у меня есть набор консольных команд, которые должны быть извлечены на целевой линукс машине (машин может быть несколько), команды засунуты в питон. как лучше запускать и доставлять скрипт?

или это зависит требований и контекста? какие еще варианты?



это третий пункт, ок. а с какого количества целевых машин ансибль имеет смысл?


а с какого количества целевых машин имеет смысл ssh ?


сейчас я обкатываю скрипт и целевая машина одна. это быстро и удобно, вполне устраивает. поэтому здесь и сейчас нет смысла в ансибле. я вот и думаю, что делать когда машин станет больше.

Была такая штука fabric, может и сейчас есть. Там все как тебе нужно, наверное.

Нет, это четвертый.

Ansible становится монструозным когда на нем делаются монструозные вещи.

А для твоей задачи ansible playbook будет в три раза короче и проще чем любой баш-скрипт который ты попробуешь написать самостоятельно. Строчек в пять можно уложиться.

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

alpha ★★★★★ ( 15.05.19 13:16:26 )
Последнее исправление: alpha 15.05.19 13:17:50 (всего исправлений: 1)


Как будто это что-то плохое.
Часто написать скрипт намного проще.
Зачем городить огород, который нужен только для 1.5 землекопа.
А если машин станет больше, обход скриптом по списку машин не сильно изменит трудоемкость.

Jopich1 ☆ ( 15.05.19 14:11:45 )
Последнее исправление: Jopich1 15.05.19 14:12:42 (всего исправлений: 1)

Часто написать скрипт намного проще.

Не в случае ansible.

А если машин станет больше, обход скриптом по списку машин не сильно изменит трудоемкость.


И добавление retry не сильно изменит, и параметризация машин, и чуть-чуть разные версии систем. и таймаут, и debug-лог..

А в случае Ansible открывать все эти радости жизни ему не придется? Ansible это выжимка лучшего опыта, это ему поможет, но на это тоже придется немало потратить времени.


А в случае Ansible открывать все эти радости жизни ему не придется?

Придётся, в доке на первой странице, минут за 10. В stackoverflow за 3.


придется. но времени на это уйдёт явно меньше, чем на написание шелл-скрипта с retry и логами.


чем ансибль лучше дженкинса, папета и тд?

чем ансибль лучше дженкинса, папета и тд?

Это совсем разные категории

Дженкинс - это java-комбайн: планировщик, очередь, обработчики, пост-хуки, web UI, groovy и нечитаемые exceptions.

Puppet - это мастер-слейв, программирование на ruby, ООП, сложные зависимости..

ansible, в своем простейшем варианте, без Tower и фишечек, это по сути аннотированный баш-скрипт. То есть берешь свой скрипт и из каждой строчки делаешь шаг в yaml-е добавив строку описания.

Потом конечно чуть подумаешь и заменишь стандартные команды на готовые обертки.

и пошла эволюция.

И он не требует никакой предварительной инфраструктуры кроме ssh-доступа на сервер.

alpha ★★★★★ ( 15.05.19 17:55:22 )
Последнее исправление: alpha 15.05.19 18:00:14 (всего исправлений: 1)

Использовать ansible. Он не монструозный, умеет первые два пункта в любых комбинациях и делает это заведомо лучше чем набыдлокодишь ты.

У меня ssh доступ по публичному ключу и


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


нужно(: ну вывод отдельно перехватывается, так что вывод ансибля не критичен


но-но-но, у меня все причесано по пеп8, гы. ансибль так ансибль, ок.


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

Python fabric как раз по пеп8

Jopich1 ☆ ( 15.05.19 20:45:44 )
Последнее исправление: Jopich1 15.05.19 20:45:59 (всего исправлений: 1)



мне хватает пайтеста пока что, не хочу отвлекаться еще на один фреймворк


Читайте также: