Подтвердить что ты не робот

Как установить среду conda в автономном режиме?

Я хотел бы создать среду conda на машине, у которой нет сетевого подключения. Что я сделал до сих пор:

На компьютере, подключенном к Интернету:

conda create -n python3 python=3.4 anaconda

Конда архивировала все соответствующие пакеты в \Anaconda\pkgs. Я поместил их в отдельную папку и переместил ее на компьютер без сетевого подключения. Папка имеет путь PATHTO\Anaconda_py3\win-64

Я пробовал

conda create -n python=3.4 anaconda --offline --channel PATHTO\Anaconda_py3

Это дает сообщение об ошибке

Fetching package metadata:
Error: No packages found in current win-64 channels matching: anaconda

You can search for this package on Binstar with

    binstar search -t conda anaconda

Что я делаю неправильно? Как сообщить conda о создании среды на основе пакетов в этом каталоге?

4b9b3361

Ответ 1

Вы можете попробовать клонировать корень, который является базовым env.

conda create -n yourenvname --clone root

Ответ 2

В дополнение к копированию папки pkgs вам необходимо проиндексировать ее, чтобы conda знал, как найти зависимости. Подробнее см. этот билет и этот script для пример индексации папки pkgs.

Использование --unknown в качестве предложения @asmeurer будет работать только в том случае, если пакет, который вы пытаетесь установить, не имеет зависимостей, иначе вы получите ошибку "Не удалось найти некоторые зависимости".

Клонирование - это еще один вариант, но это даст вам все корневые пакеты, которые могут быть не такими, какие вы хотите.

Ответ 3

Вы пробовали без --offline?

conda create -n anaconda python=3.4 --channel PATHTO\Anaconda_py3

Это работает для меня, если я не подключен к Интернету, если у меня есть anaconda уже на машине, но в другом месте. Если при выполнении этой команды вы подключены к Интернету, вы, вероятно, получите ошибку, связанную с тем, что что-то не найдено в Binstar.

Ответ 4

Я не уверен, противоречит ли это другим ответам или является тем же, но я следовал инструкциям в документации conda и настроил канал в локальной файловой системе.

Тогда нужно просто переместить новые файлы пакета в локальный каталог, запустив conda index канала (имя которой должно быть похоже на linux-64).

Я также установил параметр конфигурации Anaconda в offline на True как описано здесь, но не уверен, что это было важно.

Надеюсь, это поможет.

Ответ 5

Каталог pkgs не является каналом. Флаг, который вы ищете, это --unknown, что приводит к тому, что conda включает файлы в каталог pkgs, даже если они не найдены в одном из каналов.

Ответ 6

Вот что у меня работало в Linux -

(a) Создайте пустое окружение - просто создайте пустой каталог в $ CONDA_HOME/envs. Проверьте с помощью - conda info --envs.

(б) Активировать новый env - источник активировать

(c) Загрузите соответствующий пакет (*.bz2) с https://anaconda.org/anaconda/repo на компьютере с подключением к Интернету и переместите его на изолированный хост.

(d) Установите с использованием локального пакета - conda install. Например: conda установить python-3.6.4-hc3d631a_1.tar.bz2, где python-3.6.4-hc3d631a_1.tar.bz2 существует в текущем каталоге.

Это. Вы можете проверить обычными средствами (python -V, список conda -n). Все связанные пакеты могут быть установлены одинаково.

Ответ 7

Краткий ответ: скопируйте всю среду с другого компьютера с той же ОС.

Почему

Зависимость от. Пакет зависит от других пакетов. Когда вы устанавливаете пакет онлайн, менеджер пакетов conda анализирует зависимости пакетов и устанавливает все необходимые вам пакеты.

Зависимость особенно сильна в anaconda. Причина anaconda является метапакетом, зависит от других 160+ пакетов.

Мета-пакеты - это пакеты, которые не содержат реального программного обеспечения и просто зависят от устанавливаемых других пакетов.

Абсолютно абсурдно загружать все эти зависимости одну за другой и устанавливать их на автономный компьютер.

Подробное решение

  1. Установите conda на другой компьютер с той же ОС. Установите нужные вам пакеты в изолированной виртуальной среде.

    # create a env named "myvenv", name it whatever you want
    # and install the package into this env
    conda create -n myvenv --copy anaconda
    

    --copy используется для

    Установите все пакеты, используя копии вместо hard- или                     мягкое сшивание.

  2. Найдите, где хранятся среды, с помощью

    conda info
    

    Первым значением ключа "envs directoryies" является местоположение. Перейдите туда и упакуйте всю подпапку с именем "myvenv" (имя env на предыдущем шаге) в архив.

  3. Скопируйте архив на автономный компьютер. Проверьте "каталоги envs" из conda info. И извлеките среду из архива в каталог env на автономном компьютере.

  4. Готово.

Ответ 8

Я нашел самый простой способ:

  • Запустить 'conda create --name name package' без специальных переключателей
  • Скопируйте URL-адрес первого пакета, который он попробовал (неудачно), чтобы загрузить
  • Используйте URL-адрес на подключенном компьютере для извлечения tar.bz2
  • Скопируйте tar.bz2 в автономный компьютер /home/user/anaconda 3/pkgs
  • Разверните tar.bz2 на месте
  • Удалить ненужный tar.bz2
  • Повторяйте, пока команда 'conda create' не удастся выполнить

Ответ 9

$ bash Anaconda2-4.1.1-Linux-x86_64.sh -b -p $HOME/anaconda
$ bash Anaconda3-4.1.1-Linux-x86_64.sh -b -p $HOME/anaconda/envs/py3k
$ rm -f $HOME/anaconda/envs/py3k/bin/conda*
$ rm -f $HOME/anaconda/envs/py3k/conda-meta/conda-*
$ cd $HOME/anaconda/envs/py3k/bin
$ ln -s ../../../bin/conda .
$ rm -f activate
$ rm -f deactivate
$ ln -s ../../../bin/activate .
$ ln -s ../../../bin/deactivate .