Ищете кроссплатформенный (Linux, MacOS, Windows) инструмент для управления средами Python.

Я исследовал использование сред Anaconda для CI/CD (поскольку, насколько мне известно, это единственная платформа, поддерживающая Linux, MacOS и Windows). Я пытался использовать Miniconda, который должен установить только минимум. Однако я понял, что по умолчанию Miniconda все-таки не «мини». Например, если я попытаюсь создать новую среду Python (conda create -n py36 python=3.6 anaconda), она установит кучу ненужных вещей, таких как JupyterLab и другие. Итак, прежде чем переходить на pyenv (для Linux и MacOS) и pyenv-win (для Windows), хотелось бы спросить:

  • Есть ли способ настроить различные среды Python с помощью anaconda/miniconda без необходимости устанавливать кучу дополнительных пакетов каждый раз, когда я создаю новую среду?
  • Есть ли какой-либо другой инструмент для управления средами Python, который поддерживает Linux, MacOS и Windows?

Спасибо.


person AstrOne    schedule 18.09.2019    source источник
comment
Докер. Тогда они все Linux.   -  person gilch    schedule 18.09.2019
comment
Вы должны опустить пакет anaconda. Просто conda create -n py36 python=3.6.   -  person Simba    schedule 18.09.2019


Ответы (2)


Устанавливайте только python и его зависимости

conda create -n py36 python=3.6

без пакета anaconda.

Детальное объяснение

conda create -n py36 python=3.6

  • conda create -n py36, создать среду, фактически пустую папку
  • python=3.6, установил python 3.6 в эту среду

conda — это менеджер пакетов, и python, и anaconda — это пакеты, которые могут быть установлены с его помощью.

В отличие от пакета python, anaconda является метапакетом, который не содержит фактического программного обеспечения и просто зависит от других устанавливаемых пакетов.

Загрузите пакет anaconda здесь и извлеките из него содержимое. Пакеты, которые необходимо установить, перечислены в info/recipe/meta.yaml.

package:
    name: anaconda
    version: '2019.07'
build:
    ignore_run_exports:
        - '*'
    number: '0'
    pin_depends: strict
    string: py37_0
requirements:
    build:
        - python 3.7.3 h8c8aaf0_1
    is_meta_pkg:
        - true
    run:
        - alabaster 0.7.12 py37_0
        - anaconda-client 1.7.2 py37_0
        - anaconda-project 0.8.3 py_0
        # ...
        # about 260 packages in total
person Simba    schedule 18.09.2019
comment
Я такой глупый. Я думал, что последним аргументом было имя репозитория, из которого можно получить пакет! :) Спасибо Симба! - person AstrOne; 18.09.2019
comment
@AstrOne На самом деле anaconda - это метапакет, но обычный пакет, такой как python. Я обновил свой ответ по этому поводу. - person Simba; 18.09.2019

Вам нужен virtualenv: https://virtualenv.pypa.io/en/latest/

$ virtualenv env --python "[path to python version]"

Это создаст среду из базы Python, которую вы выбрали в предыдущей команде, в папке с именем «env». Никаких дополнительных пакетов не будет, за исключением pip и нескольких основных.

Затем вам нужно «активировать» среду — она меняется в зависимости от операционной системы. Для окон;

$ env\Scripts\activate

После этого у вас появится командная строка;

(env) $

Показывает, что он активирован. Затем вы можете использовать pip install как обычно, чтобы установить любые требования, которые вам нужны в этой среде (они будут жить в папке env). Покинуть окружающую среду;

(env) $ deactivate

Вы можете иметь столько, сколько вам нужно, и определять различные версии и требования Python. Просто не забудьте activate настроить среду перед установкой пакетов.

person elembie    schedule 18.09.2019
comment
Спасибо за ответ мой друг! Предполагается ли, что virtualenv также устанавливает разные версии Python? Можете ли вы показать мне, как установить 3.5, 3.6 и 3.7 с помощью virtualenv? Насколько я понимаю, предоставленная вами команда предполагает, что запрошенный интерпретатор Python уже должен быть установлен. Спасибо! - person AstrOne; 18.09.2019
comment
Вы можете загрузить любую версию Python, которая вам нужна, с сайта загрузки. Я был бы осторожен с использованием установщиков, если у вас уже установлена ​​версия Python на уровне пользователя — это может сломать то, что уже использует ее. Загрузите заархивированные версии, а затем вам придется либо указать путь к Python, либо собрать из исходного кода, либо использовать pyenv. для управления ими. Не могу рассказать вам шаг за шагом здесь, но там много ресурсов! - person elembie; 18.09.2019
comment
По сути, вам просто нужно иметь правильный исполняемый файл python (например, 3.5/3.7 и т. д.), доступный на вашем компьютере, а затем указать на него virtualenv. Как я упоминал выше, pyenv также может помочь вам справиться с этим (хотя я сам им не пользовался). - person elembie; 18.09.2019
comment
Думаю, это то, чего я пытаюсь избежать. Вот почему я искал Miniconda и pyenv. Мне просто нужен единый инструмент, который может делать все это и в то же время поддерживать Linux, MacOS и Windows. Я думаю, единственный вариант - это раздутая Miniconda :/ - person AstrOne; 18.09.2019