Я разработал приложение Python (в частности, Flask RESTful API, обслуживаемый gunicorn) в среде Anaconda. Приложение было разработано на Anaconda, потому что это то, что находится на моей собственной (Windows 10) машине, но я пытался придерживаться Anaconda (или, на самом деле, conda) из-за сильной зависимости приложения от pandas, NumPy и SciPy. Я единственный программист Python в команде, которая работает в основном на Java, что сбивает с толку моих товарищей по команде, а для распространения (в наших кластерах AWS и, возможно, где-то еще) мой босс хочет, чтобы я завершил все красивым поклоном RPM.
Прошлую неделю я выдергивал волосы, пытаясь понять, как это сделать. Я многому научился, но все еще довольно потерян. Вот мои текущие соображения в виде маркированного списка:
PyInstaller и т.п. работать как с conda, так и с RPM.setuptools с аргументом bdist_rpm кажется простым решением, но я с подозрением отношусь ко всему, что использует pip, а не conda для установки, из-за проблем pip с зависимостями, отличными от Python. Я понимаю, что pip в Linux, вероятно, не упадет так сильно, как pip в Windows, но я все еще не доверяю pip (должен ли я в этом случае?). Возможно, если я распространяю копии всей среды, включая пакеты, обработка зависимостей будет проще, но в своих исследованиях я не видел ничего, что могло бы сказать мне, правда это или нет.RPM или Make, но я не уверен, что знаю, как это сделать.Я был бы рад получить любой совет о том, как лучше всего действовать.
Я постоянно использую сочетание conda и pip как в Linux, так и в Windows. Я обычно использую conda для больших вещей, таких как numpy и scipy, которые мне всегда нужны в моих репозиториях, а остальное делаю через pip.
Если вы правильно укажете свои зависимости, я не ожидаю, что у вас возникнут какие-либо проблемы.
Вы пробовали pyp2rpm?
Я не видел этого - спасибо. Однако не похоже, что есть какой-либо способ интегрировать его с conda, и я даже не уверен, какое преимущество он дает мне по сравнению с инструментами настройки.






pip отлично работает в Windows, почти так же, как в Linux. Почему вы на самом деле беспокоитесь об этом? Это довольно зрелая программа. Кроме того, conda разработана специально для взаимодействия с pip. Это не испортит вашу среду.