Создание среды Anaconda из файлового пакета YML на общих пакетах - os, pip, pandas - PullRequest
0 голосов
/ 25 октября 2019

Почему anaconda задыхается от обычных пакетов при создании среды из файла YML? Anaconda COMES с этими пакетами, предварительно установленными в root (или я так думал?)

YML-файл:

---
name: rasterenv
channels:
        - conda-forge

dependencies:
        - gdal>=2.2.3
        - rasterio
        - cython
        - jupyter
        - matplotlib
        - numpy
        - pyproj
        - shapely
        - rasterio
        - pandas
        - geopandas
        - os
        - matplotlib
        - seaborn
        - fiona
        - OSMnx
        - pip:
            - pygeotools
            - pygeoprocessing

Попытка создать файл с: conda env create -f path/to/file

Если я создаю среду с JUST необычными пакетами, такими как растерио, это, кажется, работает. НО, я хочу среду со всеми! Что здесь дает?

Ошибка:

ResolvePackageNotFound:
  - os

Если я удаляю os из списка, ошибка становится:

ResolvePackageNotFound:
  - matplotlib

1 Ответ

1 голос
/ 28 октября 2019

Как отметил @sinoroc в комментариях, os является частью стандартной библиотеки Python и не должен указываться в качестве зависимости. (Когда вы определите его как зависимость, Python будет искать пакет с именем os во всех доступных репозиториях [в данном случае PyPI или anaconda.org] и не найдет его.)

Вы можете увидеть, какие пакеты являются частью стандартной библиотеки, проверив документы здесь: https://docs.python.org/3/library/ (Также было несколько вопросов по SO, как узнать, является ли конкретный пакет частью библиотеки std, например: Как проверить, является ли модуль / библиотека / пакет частью стандартной библиотеки python? ) При создании новой среды пакеты из std lib являются единственными, которые доступны по умолчанию. Все остальное нужно установить.

Кроме того, в вашем файле yaml есть два пакета, которые перечислены дважды (rasterio и matplotlib), что заставляет меня думать, что вы создали этот файл вручную. Вы можете создать файл среды conda, активировав среду и запустив conda env export > environment.yml, который создаст файл с именем environment.yml со всеми необходимыми зависимостями.

...