запуск файлов *.py

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Bismark
Сообщения: 175

запуск файлов *.py

Сообщение Bismark »

Есть необходимость запускать файлы *.py через консоль, подскажите, как это сделать?
Используемый дистрибутив: Debian Ecth.
registered as user #420294 with the Linux Counter

Jabber: fon_bismark@jabber.ru
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: запуск файлов *.py

Сообщение Uncle_Theodore »

Это программы на языке Python.
Надо установить его интерпретатор.
http://www.diveintopython.org/installing_python/debian.html
http://www.debian.org/doc/packaging-manuals/python-policy/
Спасибо сказали:
Аватара пользователя
Bismark
Сообщения: 175

Re: запуск файлов *.py

Сообщение Bismark »

Ну тогда еще вопрос, если я сам буду писать скрипты на python, что надо добавить в файл, чтобы он был исполняемым.
registered as user #420294 with the Linux Counter

Jabber: fon_bismark@jabber.ru
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: запуск файлов *.py

Сообщение Uncle_Theodore »

Bismark писал(а):
13.07.2007 22:33
Ну тогда еще вопрос, если я сам буду писать скрипты на python, что надо добавить в файл, чтобы он был исполняемым.

Первой строчкой, как обычно, надо прописать путь к интерпретатору (в моем случае #!/usr/bin/python) и сделать скрипт исполняемым командой chmod

Как тут, например
http://www.onembedding.com/tools/python/code/bin2c.py
Спасибо сказали:
Аватара пользователя
Bismark
Сообщения: 175

Re: запуск файлов *.py

Сообщение Bismark »

Uncle_Theodore, а возможно ли сделать так, что бы скрипты написанные на Python запускались без наличия интерпритатора в системе?
registered as user #420294 with the Linux Counter

Jabber: fon_bismark@jabber.ru
Спасибо сказали:
Аватара пользователя
unflag
Бывший модератор
Сообщения: 1030
Статус: здесь могла бы быть ваша реклама
ОС: Debian testing/Win Server 2008

Re: запуск файлов *.py

Сообщение unflag »

Bismark писал(а):
17.07.2007 10:49
Uncle_Theodore, а возможно ли сделать так, что бы скрипты написанные на Python запускались без наличия интерпритатора в системе?

Нет конечно:) Кто же их интерпретировать будет?=)

One day! One day, who knows?
Someday! Someday I suppose!

Конференция в jabber: linuxforum@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
Bismark
Сообщения: 175

Re: запуск файлов *.py

Сообщение Bismark »

мдяя :( тогда получается вся кросплатформеность - это кросплатформенный интерпретатор?
registered as user #420294 with the Linux Counter

Jabber: fon_bismark@jabber.ru
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Имеешь интерпретатор на системе - будет работать и программа.
Спасибо сказали:
Аватара пользователя
unflag
Бывший модератор
Сообщения: 1030
Статус: здесь могла бы быть ваша реклама
ОС: Debian testing/Win Server 2008

Re: запуск файлов *.py

Сообщение unflag »

Bismark писал(а):
17.07.2007 11:58
мдяя :( тогда получается вся кросплатформеность - это кросплатформенный интерпретатор?

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

One day! One day, who knows?
Someday! Someday I suppose!

Конференция в jabber: linuxforum@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Явы и сишарпы компилируются в байт-код и исполняются на вертуальной машине, а питон интерпретируется.
Спасибо сказали:
Аватара пользователя
Bismark
Сообщения: 175

Re: запуск файлов *.py

Сообщение Bismark »

А если у скрипта есть GUI фронтэнд? тоже через интерпритатор работает?
registered as user #420294 with the Linux Counter

Jabber: fon_bismark@jabber.ru
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

ага
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 12:21
Явы и сишарпы компилируются в байт-код и исполняются на вертуальной машине, а питон интерпретируется.

Программы на Python можно и в промежуточный байт-код скомпилировать. Плюс ко всему, можно создать вообще бинарник, который по сути будет объединённым в один файл интерпретатором (и всеми библиотеками, для него необходимыми) и кодом программы.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Rootlexx писал(а):
17.07.2007 13:08
Программы на Python можно и в промежуточный байт-код скомпилировать. Плюс ко всему, можно создать вообще бинарник, который по сути будет объединённым в один файл интерпретатором (и всеми библиотеками, для него необходимыми) и кодом программы.

1) Не можно, а при возможности так и происходит. Сохраняется байт-код для того, чтобы в дальнейшем не тратить время на перекомпиляцию языка, в отличие, например, от перла. Каждый раз при запуске измененного кода происходит его перекомпиляция. Так что это не промежуточный байт-код.
2) Создать бинарник с набором всех либ и наплодить сущности - чисто вендовый подход. Вместо того, чтобы установить один интерпретатор, либы и n программ, устанавливается n интерпретаторов, n либ и n программ.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 13:55
2) Создать бинарник с набором всех либ и наплодить сущности - чисто вендовый подход. Вместо того, чтобы установить один интерпретатор, либы и n программ, устанавливается n интерпретаторов, n либ и n программ.

Это, конечно, так, но всё же это даёт хоть какую-то уверенность, что твоя программа запустится на другом компьютере в другой системе, а то ставить ради этого интерпретатор со всем ворохом библиотек, да к тому же для этого понадобятся права root, которых может не быть :), - это излишне трудоёмко.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Этот подход приемлем не для всех программ и систем. Python присутствует по умолчанию практически на всех юниксах (даже лайв-сд) вместе с набором стандартных библиотек, даже PyQt3. Если программа должна устанавливаться корректно, то это делается именно от рута а потом становится доступной для всех пользователей (при установке в стандартные каталоги). Тут уж и не лень набрать пару команд дял установки нескольких отсутствующих либ.
Я уже не говорю про венды, у которых пользователь почти всегда является администратором (особенно на домашних машинах), тут смысла таскать за каждой маленькой программкой одинаковые тонны либ просот не имеет смысла.
Подход же "все свое ношу с собой" применим только тогда, когда программу надо запустить пару раз и то, например, с диска/флешки.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 14:13
Подход же "все свое ношу с собой" применим только тогда, когда программу надо запустить пару раз и то, например, с диска/флешки.

Так я же про это и говорю.
Если Вы написали программу на Python (для работы, например), то Вам проще скомпоновать всё в один файл вместе с интерпретатором, чем искать и пинать администратора "поставьте мне на машину Python!". Да и по друзьям ходить удобнее. Я же не предлагал все программы так делать, только те, где это необходимо или желательно.
Я уже не говорю про венды, у которых пользователь почти всегда является администратором (особенно на домашних машинах), тут смысла таскать за каждой маленькой программкой одинаковые тонны либ просот не имеет смысла.

Это да, но в Windows Вы не установите Python одной командой :), так что придётся таскать с собой ещё и дистрибутив, что, по моему, не лучше.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

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

Хм, это почему я не установлю его одной командой? У меня например есть потребность устанавливать на венды питоновые программы, поэтому у меня имеется для этой цели флешка с каталогом, в котором лежит интерпретатор. мингв и куте4/пикуте4. Устанавливается все это дело одним бат-файлом в пять строчек. А установка питона - клик по сетап.екзе и клики "далее" :)
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 14:45
А если же программа планируется для стационарного использования, то с практической точки зрения ее нужно делать именно "разложенной по полочкам".

Безусловно, незачем захламлять систему.
Liksys писал(а):
17.07.2007 14:45
Хм, это почему я не установлю его одной командой? У меня например есть потребность устанавливать на венды питоновые программы, поэтому у меня имеется для этой цели флешка с каталогом, в котором лежит интерпретатор. мингв и куте4/пикуте4. Устанавливается все это дело одним бат-файлом в пять строчек.

Но в любом случае дистрибутив Python Вы таскаете с собой :). Менеджер пакетов Вам его не скачает, так что ставить всё равно придётся самостоятельно. А при компоновке всего в один файл, туда вкладываются лишь те библиотеки, что понадобятся. Так что это по размеру явно лучше, чем дистрибутив Python (в котором, кстати, может не быть тех библиотек, что Вы использовали), да и устанавливать всё равно придётся с правами администратора (или я не прав? - не знаю, как там в Windows сейчас с этим).
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Я говорю про одно, а Вы мне про другое. Щас в магазин еду, как приду, расскажу все в подробностях :)

ЗЫ: Питон - одна из моих специализаций ;)
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 14:59
Щас в магазин еду, как приду, расскажу все в подробностях

... в личку :).
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Ну зачем же в личку :)
Вы видимо путаете, о каких системах идет речь.

Rootlexx писал(а):
17.07.2007 14:56
Но в любом случае дистрибутив Python Вы таскаете с собой :). Менеджер пакетов Вам его не скачает, так что ставить всё равно придётся самостоятельно.
Дистрибудив для венды (!), поскольку его там нет по дефолту, в отличие от Линукса.

Rootlexx писал(а):
17.07.2007 14:56
А при компоновке всего в один файл, туда вкладываются лишь те библиотеки, что понадобятся. Так что это по размеру явно лучше, чем дистрибутив Python (в котором, кстати, может не быть тех библиотек, что Вы использовали), да и устанавливать всё равно придётся с правами администратора (или я не прав? - не знаю, как там в Windows сейчас с этим).
Дистрибутив Питона я таскаю _вместе_с_нужными_для_программы_либами_ и не только для конкретно этой программы, а полный набор, поскольку если будет установлено эще энное количество софта не придется каждому ставить интерпретатор (замечание для венды!!!). Про права администратора (в венде!!!) перечитай мои посты выше _внимательно_

Для Линукса же проблемы нет, в большинстве случаев все либы уже присутствуют. И таскание за собой всего в куче для никсов является не только технически, но и идеалогически неверным способом в отличие от венды.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 19:27
Дистрибудив для венды (!)

Хм, обратите внимание на эти мои слова:
Rootlexx писал(а):
17.07.2007 14:56
или я не прав? - не знаю, как там в Windows сейчас с этим

, а также на:
Rootlexx писал(а):
17.07.2007 14:38
Это да, но в Windows Вы не установите Python одной командой , так что придётся таскать с собой ещё и дистрибутив, что, по моему, не лучше.

По моему, очевидно, что я прекрасно понимаю, о какой системе идёт речь, о ней я и говорю, не о Linux.
Liksys писал(а):
17.07.2007 19:27
Дистрибутив Питона я таскаю _вместе_с_нужными_для_программы_либами_ и не только для конкретно этой программы, а полный набор, поскольку если будет установлено эще энное количество софта не придется каждому ставить интерпретатор (замечание для венды!!!). Про права администратора (в венде!!!) перечитай мои посты выше _внимательно_

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

Видимо, Вы не вполне поняли мою позицию. Что ж, постараюсь разъяснить.
По Linux: в большинстве случаев слияние собственно программы и интерпретатора не является необходимостью, более того, это нежелательно, ибо дублирует те библиотеки, которые есть в системе. Но это справедливо для своей системы. Если Вы собираетесь переносить Вашу программу на сменных носителях, запуская её без установки на чужих машинах, то такая компоновка имеет смысл, ибо во-первых, не на всех машинах стоит Python (с чего Вы взяли, что на всех? - на моей нет :-P), во-вторых, не на всех машинах стоит нужная ветка Python (скажем, 1.X), в-третьих, не на всех машинах есть нужные для работы библиотеки. Это по Linux.
Что касается Windows, то здесь это более чем желательно. Ибо: не придётся ставить весь Python, не придётся искать администратора, чтобы его поставить (почему мы говорим только о домашних компьютерах? - можно ведь и на работу написать небольшую программку, сильно упрощающую жизнь, хотя согласен, что большинство домашних пользователей работает с правами администратора), наконец, не придётся таскать с собой ворох библиотек, включая сам дистрибутив.
Тем более, Вы сами писали, что:
Liksys писал(а):
17.07.2007 13:55
Создать бинарник с набором всех либ и наплодить сущности - чисто вендовый подход.

Далее:
Liksys писал(а):
17.07.2007 19:27
Дистрибутив Питона я таскаю _вместе_с_нужными_для_программы_либами_ и не только для конкретно этой программы, а полный набор, поскольку если будет установлено эще энное количество софта не придется каждому ставить интерпретатор

Так в чём разница тогда, таскать всё с собой отдельно, или скомпоновать в один файлик?

Примечание: в большинстве дистрибутивов Python не входит в список устанавливаемых по умолчанию программ. В Fedora - да, потому, что там административные утилиты на нём написаны (по крайней мере были). Да, кстати, дабы у Вас не возникло вопросов, это я говорил про Linux :).
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Как интересно мне пытаются объяснить мою же позицию :)

По Linux: в большинстве случаев слияние собственно программы и интерпретатора не является необходимостью, более того, это нежелательно, ибо дублирует те библиотеки, которые есть в системе. Но это справедливо для своей системы. Если Вы собираетесь переносить Вашу программу на сменных носителях, запуская её без установки на чужих машинах, то такая компоновка имеет смысл, ибо во-первых, не на всех машинах стоит Python (с чего Вы взяли, что на всех? - на моей нет :-P), во-вторых, не на всех машинах стоит нужная ветка Python (скажем, 1.X), в-третьих, не на всех машинах есть нужные для работы библиотеки. Это по Linux.
Правильная установка, еще раз, использует именно разделяемые библиотеки, этот подход для стационарных программ. Компоновка в один файл - лайв-программы, которые запускаются с флешки например (об этом я, как ни странно, тоже уже говорил :) ).

Что касается Windows, то здесь это более чем желательно. Ибо: не придётся ставить весь Python, не придётся искать администратора, чтобы его поставить (почему мы говорим только о домашних компьютерах? - можно ведь и на работу написать небольшую программку, сильно упрощающую жизнь, хотя согласен, что большинство домашних пользователей работает с правами администратора), наконец, не придётся таскать с собой ворох библиотек, включая сам дистрибутив.
Опять таки, зависит от ситуации, причем от Линукс она не сильно отличается: стационарный софт - разделяемые библиотеки, переносной софт - вкомпиленные.

Так в чём разница тогда, таскать всё с собой отдельно, или скомпоновать в один файлик?
Читаем вниматильно цитируемый Вами текст. Разница в том, что установив однажды набор библиотек не нужно будет их алодить на каждое приложение. Многие программы, которые я пишу для одной фирмы, требуют как раз того, что у меня лежит на флешке. И большинство из них используют Питон. Поэтому вместо установки 5 программ + 5 либ/интерпретаторов правильно будет установить 5 программ + 1 разделяемый интерпретатор/либу.

Примечание: в большинстве дистрибутивов Python не входит в список устанавливаемых по умолчанию программ. В Fedora - да, потому, что там административные утилиты на нём написаны (по крайней мере были). Да, кстати, дабы у Вас не возникло вопросов, это я говорил про Linux :).
Зато для стационарного софта его вполне можно потребовать как зависимость и нефиг таскать за собой, если он уже присутствует. Это сказано для обоих систем :cool:
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys писал(а):
17.07.2007 20:23
Как интересно мне пытаются объяснить мою же позицию

Ошибаетесь, я Вам объясняю свою позицию.
Liksys писал(а):
17.07.2007 20:23
Правильная установка, еще раз, использует именно разделяемые библиотеки, этот подход для стационарных программ.

А теперь читаем мои слова:
Rootlexx писал(а):
17.07.2007 20:01
Если Вы собираетесь переносить Вашу программу на сменных носителях, запуская её без установки на чужих машинах, то такая компоновка имеет смысл,

Причём фразу "без установки" я даже подчеркнул, но Вы, видимо, всё равно не обратили на это внимания :(.
Liksys писал(а):
17.07.2007 20:23
Компоновка в один файл - лайв-программы, которые запускаются с флешки например (об этом я, как ни странно, тоже уже говорил ).

Как ни странно, я тоже об этом говорил. Снова читаем мои слова:
Rootlexx писал(а):
17.07.2007 20:01
в большинстве случаев слияние собственно программы и интерпретатора не является необходимостью, более того, это нежелательно, ибо дублирует те библиотеки, которые есть в системе. Но это справедливо для своей системы. Если Вы собираетесь переносить Вашу программу на сменных носителях, запуская её без установки на чужих машинах, то такая компоновка имеет смысл

Liksys писал(а):
17.07.2007 20:23
стационарный софт - разделяемые библиотеки, переносной софт - вкомпиленные.

А теперь покажите, пожалуйста, где я говорил что-то иное. Моя цитата выше лишь подтверждает это.
Liksys писал(а):
17.07.2007 20:23
Разница в том, что установив однажды набор библиотек не нужно будет их алодить на каждое приложение.

Ключевое слово здесь - "установив" :). По поводу данного ключевого слова - смотрите выше.

Получается, что в общем наши позиции совпадают. Тогда о чём дискуссия-то :)?
Вот уж не ожидал, что мой комментарий, почти полностью совпадающий по смыслу с Вашим, вызовет такую бурную реакцию :).
Заметьте, я писал:
Liksys писал(а):
17.07.2007 13:55
Это, конечно, так, но всё же это даёт хоть какую-то уверенность, что твоя программа запустится на другом компьютере в другой системе

Rootlexx писал(а):
17.07.2007 14:38
Так я же про это и говорю.

Rootlexx писал(а):
17.07.2007 14:38
Я же не предлагал все программы так делать, только те, где это необходимо или желательно.

Можете уточнить, в чём именно Вы со мной не согласны?

Кстати, практически в каждом моём сообщении я с Вами соглашался, а Вы не соглашались со мной, получается суперпозиция, и Вы не соглашались с самим собой :)!
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: запуск файлов *.py

Сообщение Liksys »

Я просто не углядел то место, где было объяснено про переносимые программы. В последнем посту я вижу это.
Так что давай на "ты" и пошли пить водку :)
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: запуск файлов *.py

Сообщение Rootlexx »

Liksys, идёт :). Тему закрываю.
Спасибо сказали: