Я пытаюсь обновить проект Pyramid до Python 3. Я также изучаю различные способы улучшения системы сборки, чтобы она стала более современной.
В настоящее время мы используем Python. buildout
для настройки экземпляра. Подход прост:
- Все необходимые
eggs
(включая app
- это мой пакет) хранятся в конфигурационном файле компоновки с указанием их точных версий. - Запустите buildout, чтобы получить точный
eggs
(включая данные сторонних разработчиков) с локального сервера пакетов. - Запустите экземпляр, используя
./bin/pserve config.ini
.
Для моего нового app
исходного кода, в котором Python 3 изменения, я пытаюсь избавиться от всего и просто использовать pip
вместо этого. Вот что я сделал сейчас (в docker контейнере):
git clone git@github.com/org/app.git
cd project
# Our internal components are fetched using the `git` directive inside `requirements.txt`.
pip install -r requirements.txt # Mostly from PyPi.
pip install .
Это работает, но правильный ли это способ развертывания приложения для развертывания?
Буду ли я возможность преобразовать всю установку в простую: pip install app
и запустить ее, используя pserve config.ini
, если я сделаю следующее:
- Загрузите самое последнее яйцо
app
на мой сервер пакетов. - Syn c setup.py и needs.txt, чтобы Python сделать
pip install -r requirements.txt
(или его эквивалент) внутренне? pip install app
. - Copy
config.ini
к машине, на которую я собираюсь установить. - Выполнить
pserver config.ini
Я хотел бы знать, можно ли использовать вышеуказанный подход, прежде чем приступить к созданию яйца, издеваться над простым сервером пакетов et c. Я не уверен, смогу ли я действительно сделать pip install
для веб-приложения; и я думаю, что requirements.txt
имеет какое-то значение в этом случае.
Я еще не исследовал wheels
, но если вышеприведенное сработает, я тоже попробую.
Так как я Я действительно новичок в упаковке, был бы признателен, если бы я мог несколько предложений по модернизации с помощью новейших инструментов.
После прочтения некоторых ссылок, таких как needs.txt vs setup.py , Я думаю, requirements.txt
требуется для веб-приложений, особенно если вы хотите, чтобы согласованное поведение для целей развертывания. Кажется, что проект или приложение отличается от библиотеки, в которой pip install suffices
.
Если это так, я думаю, что идеальный способ - сделать pip install -r requirements.txt
, а затем pip install app
с локального сервера пакетов. без git клонирования?
Ресурсы: install_requires и файлы требований