Обновление проекта от buildout до pip? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь обновить проект Pyramid до Python 3. Я также изучаю различные способы улучшения системы сборки, чтобы она стала более современной.

В настоящее время мы используем Python. buildout для настройки экземпляра. Подход прост:

  1. Все необходимые eggs (включая app - это мой пакет) хранятся в конфигурационном файле компоновки с указанием их точных версий.
  2. Запустите buildout, чтобы получить точный eggs (включая данные сторонних разработчиков) с локального сервера пакетов.
  3. Запустите экземпляр, используя ./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, если я сделаю следующее:

  1. Загрузите самое последнее яйцо app на мой сервер пакетов.
  2. Syn c setup.py и needs.txt, чтобы Python сделать pip install -r requirements.txt (или его эквивалент) внутренне?
  3. pip install app.
  4. Copy config.ini к машине, на которую я собираюсь установить.
  5. Выполнить 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 и файлы требований

...