Я новичок в Python, а также в Azure, поэтому мне может не хватать важной информации в моем дизайне. У нас есть несколько библиотек, созданных для использования пользователем при работе в рабочей области Azure ML. Теперь эти вопросы остаются прежними, если мы создаем библиотеки для использования пользователем в простой записной книжке Jupyter.
Теперь обе эти библиотеки имеют пакеты diff, которые могут отличаться от того, что использует пользователь. Например: пользователь может использовать среду, в которой используется numpy x.1, но пакет A может использовать x.2, а пакету B требуется x.3. Это возможно, поскольку все эти пакеты разрабатываются разными командами.
Теперь, что может быть лучшим способом справиться с этой проблемой в реальном мире. До сих пор я могу придумать следующие подходы:
Итак, я хотел знать, есть ли правильный способ сделать это в реальном мире. Я вижу, что мы должны создавать разные среды для каждого проекта, но как насчет случая, когда у нас разные пакеты, которым нужны разные версии общих зависимостей. Как поступить в таком случае?






Вы правы, вы можете создавать контейнеры Docker, чтобы создать отдельную среду для разных библиотек, чтобы пользователи могли управлять ими по отдельности. Вы также можете использовать пользовательскую среду Azure ML и создать изолированную среду для разных пакетов.
Для виртуальной среды один из вариантов — установить пакеты напрямую, а второй — создать файл requirements.txt, добавить все пакеты в этот файл и установить pip в файл requirements.txt в venv. И третий вариант — использовать setup.py > Добавьте все свои пакеты в setup.py и запустите код setup.py, чтобы установить эти пакеты, а затем импортировать их в соответствии с требованиями пользователей.
Виртуальная среда: -
Создан один файл requirements.txt, как показано ниже:
numpy==1.19.5
pandas==1.3.0

В записной книжке Azure ML создайте виртуальную среду и установите пакеты requirements.txt, как показано ниже:
!python3 -m venv myenv
!source myenv/bin/activate
!pip install -r requirements.txt

Вы можете сослаться на мой ответ на тему SO здесь, где я создал файл setup.py python с пакетами в моем репозитории github и установил их в свой блокнот.
Вы можете напрямую создавать различные файлы Python с пакетами и запускать их в своем ноутбуке, как показано ниже:
setup.py из моего ответа выше: -
from setuptools import setup, find_packages
setup(
name='pycode',
version='0.1',
packages=find_packages(),
install_requires=[
'numpy',
'pandas',
'scikit-learn'
],
entry_points = {
'console_scripts': [
'pycode=pycode.cli:main'
]
}
)

Выход:-

К сожалению, записные книжки Azure ML привязаны к одному ядру Python, поэтому вам нужно создать отдельную виртуальную среду в разных записных книжках.
так что это означает, что у меня осталось 2 варианта: либо использовать док-контейнеры, либо использовать лазурные среды для каждого пакета. любые предложения, какой из них лучше и почему из этих 2?
говоря об этом блокноте, будете ли вы переключаться между различными виртуальными средами или будете поддерживать одну виртуальную среду, в которой вы будете поддерживать все совместимые пакеты. моя проблема в том, как переключаться между diff virtual env в одном ноутбуке