установка геопанд с помощью conda, не могу найти зависимости libgcc-ng - PullRequest
1 голос
/ 17 мая 2019

Я пытаюсь установить геопанды с помощью conda.

Я создал новую среду

conda create --name gp python=2 

Затем попытался установить геопанду

conda install geopandas

Что возвращает

Ошибка: не удалось найти некоторые зависимости для геопанд: rtree, libspatialindex> = 1.9.0, <1.10.0a0, libgcc-ng> = 7.3.0, основа matplotlib

Вы имели в виду один из них?

geopandas, pandas, biopandas

Вы имели в виду один из них?

rtree, r-tree, r-htree

Вы имели в виду один из них?

matplotlib-base, matplotlib-venn, matplotlib

Итак, я установил libgcc-ng:

conda install -c anaconda libgcc-ng 

Затем попытался установить libspatialindex:

conda install -c conda-forge libspatialindex 

Но это возвращает:

Ошибка: не удалось найти некоторые зависимости для libspatialindex: libgcc-ng > = 7.3.0

1 Ответ

1 голос
/ 18 мая 2019

Если смысл нового env в том, чтобы в нем было geopandas, то дайте Конде знать об этом с самого начала, и он может решить зависимости заранее:

conda create -n gp python=2 geopandas

Однако, как указывает @martinfleis, у вас все еще могут быть проблемы с приоритетом канала. При тестировании на платформе linux-64 я смог установить geopandas=0.4.0 только с канала anaconda, но для установки geopandas=0.5.0 требовались как anaconda, так и conda-forge, и он мог быть предоставлен в любом из приоритетов. В тестировании @ martinfleis работал только приоритет conda-forge. Следовательно,

conda create -n gp -c conda-forge -c defaults --override-channels python=2 geopandas

будет консенсусной командой.


Примечание о приоритетах канала

Можно изменить приоритеты канала на уровне конфигурации, как в комментарии @ martinfleis к OP, и в этом случае это будет сделано так, чтобы первая команда выше работала точно так же, как вторая. Однако нужно только сделать такое изменение, чтобы оно действительно совпадало с вашими предпочтениями канала, а не для конкретной установки.

Альтернатива, как показано во второй команде выше, заключается во временном указании приоритетов канала в команде create или install. В этой команде -c conda-forge, стоящий первым, дает ей приоритет над -c defaults. Флаг --override-channels отключает любые другие каналы, которые могут быть в постоянных настройках конфигурации.

Кроме того, можно по-прежнему указывать отдельные пакеты, приходящие с определенного канала, добавляя префикс <channel>:: к имени пакета. Например, если во второй команде я все еще хочу получить исходный код Python из defaults, это будет defaults::python=2.

Если у вас есть более пары исключений, которые вы хотите указать, то, вероятно, пришло время рассмотреть возможность установки из YAML.

...