LinuxForum.Fans
Тема

[Рython] Запуск программы

Автор: onlyshk 22 сообщений 11908 просмотров
#1826

Доброго времени суток. Написал первую программу на python, то есть у меня есть программа состоящая из main.py и еще нескольких py файлов. Проблема в следующем: я хочу что бы моя программа запускалась в терминале из /usr/bin, но копируя main.py в /usr/bin при запуске программа требует те несколько файлов о которых я говорил выше. Собственно вопрос в следующем: что мне прописать в makefile или еще где что бы после того как пользователь установит программу ее можно было спокойно запустить из термианала введя имя программы.
Спасибо.

#1829

Мне кажется в /usr/bin нужно положить bash скрипт запускающий ваш main.py, а main.py и все остальные файлики скинуть в /usr/share/вашапрограмма.

#1833
komcumir написал:
Мне кажется в /usr/bin нужно положить bash скрипт запускающий ваш main.py, а main.py и все остальные файлики скинуть в /usr/share/вашапрограмма.

Спасибо за ответ. Да что то я не подумал так действительно будет правильнее. Но как закинуть папку с py файлами в /usr/share/... я что-то тоже ума не приложу :(

#1834

Способов много. komcumir предлагает хороший вариант.
Не обязательно класть программу по пути /usr/share/program, можно положить почти куда угодно.
Также, как вариант, модифицировать переменную PATH. Ни красиво, ни правильно, но работать будет.

onlyshk написал:

Спасибо за ответ. Да что то я не подумал так действительно будет правильнее. Но как закинуть папку с py файлами в /usr/share/... я что-то тоже ума не приложу :(

У вас нет прав на запись?

#1837

Дело в том что пишу в Anjuta, а она такие огромные makefile генерит, что тут сам ерт ногу сломит

#1839

+

#1842

Вручную то сделать это не проблема. Хотелось бы что бы это выполнялось на уровне make && make install

#1843

Добавить соответствующую команду в цель install.

#1847
MassConstructor написал:
Добавить соответствующую команду в цель install.

Вот уже близко к истине. :) Где можно псмотреть синтаксис как это делать в makefile?

нашел секцию install:install-recursive
это оно?

#1850

самой первой строкой main.py запишите
#!/usr/bin/env python

либо
#!/usr/bin/python

это избавит вас от необходимости писать однострочник на bash'е для запуска скрипта python.
Чтобы не парится с правами пользователя оформите вашу программу в виде пакета rpm, deb или ebuild... в общем в "нормальный" пакет. Если у пользователя есть права на установку то проблем не возникнет.

P.S. А какая связь между Анютой и Питоном, если я не ошибаюсь первая - среда IDE для C/C++ (http://ru.wikipedia.org/wiki/Anjuta)

#1851
deadhead написал:
самой первой строкой main.py запишите
P.S. А какая связь между Анютой и Питоном, если я не ошибаюсь первая - среда IDE для C/C++ (http://ru.wikipedia.org/wiki/Anjuta)

Видимо не только. Как минимум можно писать на C/C++/java/python, может и больше с помощью плагинов.

#1857
onlyshk написал:
[quote=deadhead]самой первой строкой main.py запишите
P.S. А какая связь между Анютой и Питоном, если я не ошибаюсь первая - среда IDE для C/C++ (http://ru.wikipedia.org/wiki/Anjuta)

Видимо не только. Как минимум можно писать на C/C++/java/python, может и больше с помощью плагинов.[/quote]

Ну, а зачем, тогда скрипту на python'e make-файл?

#1859

Отвлекся :)

deadhead написал:

Ну, а зачем, тогда скрипту на python'e make-файл?

Присоединяюсь к вопросу

#1861
deadhead написал:
Ну, а зачем, тогда скрипту на python'e make-файл?

Тяжелый вопрос я разбираюсь в python не так давно :) Как anjuta сгенерила а щас что то меня ть не очень хочется

#1864

Если у Вас уже есть готовые py-файлы, можете, как уже сказал deadhead, оформить пакет. И не надо ниаких makefile'ов.

#1867
onlyshk написал:
[quote=deadhead]Ну, а зачем, тогда скрипту на python'e make-файл?

Тяжелый вопрос я разбираюсь в python не так давно :) Как anjuta сгенерила а щас что то меня ть не очень хочется[/quote]
Ну так может стоит сначала разобраться в Python, а уж потом свои поделки пользователю подсовывать? Если нужно вам и книжку посоветуют и ресурс интересный ;-)

#1869
deadhead написал:

Ну так может стоит сначала разобраться в Python, а уж потом свои поделки пользователю подсовывать? Если нужно вам и книжку посоветуют и ресурс интересный ;-)

Думаю, все равно вопрос очень интересует автора темы.
onlyshk, как вариант распространения Вашей программы можно еще назвать пакование tar'ом, где будет исполнимый sh-файл и набор Ваших py-файлов. Просто, и никаких makefile'ов ;)

#1871

MassConstructor написал:

Думаю, все равно вопрос очень интересует автора темы.
onlyshk, как вариант распространения Вашей программы можно еще назвать пакование tar'ом, где будет исполнимый sh-файл и набор Ваших py-файлов. Просто, и никаких makefile'ов ;)
В общем то я так и делаю обычно, есть rpm и есть архив со скриптами, а там уж пользователь уж сам пусть решает что и откуда запускать...
#1959

Не программлю на phyton, но есть предположение, что нужно поправить PATH переменную окружения

#1973
ystas написал:
Не программлю на phyton, но есть предположение, что нужно поправить PATH переменную окружения

см. выше :)
Способ не для данной ситуации, насколько я понимаю.

Войдите или зарегистрируйтесь, чтобы ответить.