Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2011 10:29:43

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

distutils инсталляция приложения

Добрый день!
Возможно, я что-то пропустил в документации, но возник вопрос:
можно ли использовать distutils для инсталляции приложения?
Или это инструмент только для установки библиотек?
То есть требуется, чтобы модули были видны только друг другу, а система видела бы только
main скрипт.



Офлайн

#2 Авг. 31, 2011 11:30:36

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

distutils инсталляция приложения

странное желание



Офлайн

#3 Авг. 31, 2011 13:35:12

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

distutils инсталляция приложения

То есть? Я так понимаю, можно оформить пакет, содержащий все модули программы,
тогда все исходники, кроме main скрипта будут лежать в отдельной папке в /usr/local/lib/……
и накладок не будет. Но хотелось бы как-то поэлегантнее



Офлайн

#4 Авг. 31, 2011 14:51:35

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

distutils инсталляция приложения

Офлайн

#5 Авг. 31, 2011 17:58:43

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

distutils инсталляция приложения

Тогда уж virtualenv



Офлайн

#6 Сен. 1, 2011 12:27:52

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

distutils инсталляция приложения

Решил пока остановиться на варианте с использованием setuptools
с примерно таким setup.py:

from setuptools import setup 
setup(name='MyApp',
py_modules = [List of program modules],
scripts = [MainScript],
)
Но возник такой вопрос: программа при первом запуске должна создавать конфиг, который
читается при последующих запусках. Можно писать его в домашнюю директорию, но хочется, чтобы
все работало и под виндой без изменения исходников. Или выбирать путь в зависимости от системы
при старте? Как лучше поступить?



Офлайн

#7 Сен. 1, 2011 12:40:24

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

distutils инсталляция приложения

setuptools ничего не изолирует — это к слову.
Путь к конфигам — да, выбирать самому в зависимости от операционной системы.



Офлайн

#8 Сен. 1, 2011 20:04:01

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

distutils инсталляция приложения

+1 за virtualenv



Офлайн

#9 Сен. 3, 2011 12:32:02

Evgeny
От:
Зарегистрирован: 2009-08-09
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

distutils инсталляция приложения

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

В общем, остались вопросы:
- distutils использовать только для инсталляции своих библиотек, или можно ставить готовые программы?
- годен ли и хорош приведенный выше вариант с setuptools?
- или использовать что-то другое, например, упомянутый buildout?



Офлайн

#10 Сен. 3, 2011 13:06:21

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

distutils инсталляция приложения

Искомый стандартный инструмент называется именно virtualenv. Делать при этом через distutils или setuptools — уже вторично.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version