У меня были проблемы с pandas-datareader
пакетом v0.81. Чтобы решить мою проблему, мне пришлось обновить пакет до более новой версии 0.9, выполнив следующую команду;
conda install -c anaconda pandas-datareader
К сожалению, когда я позже попытался обновить пакеты conda с помощью команды conda update --all
, версия pandas-datareader
понизилась до версии 0.81. v0.81 с канала conda-forge. Я хочу v0.9 от канала anaconda.
Ниже то, что я хочу.
https://anaconda.org/anaconda/pandas-datareader
Ниже не то, что я хочу
https://anaconda.org/conda-forge/pandas-datareader
Как заставить conda всегда обновлять pandas-datareader до последней версии на канале anaconda, когда я запускаю conda update --all
?
Я использую версию python anaconda 2020_07 в Windows 10.
Conda достаточно мощный, чтобы анализировать минимальные версии, и он помнит, что они были указаны. Если вы предпочитаете как минимум 0,9, вам просто нужно указать это с помощью
conda install 'pandas-datareader>=0.9'
или
conda install pandas-datareader[version='>=0.9']
После того, как вы запустите это, оно будет добавлено в ваши явные спецификации1, и это должно заблокировать по крайней мере эту версию pandas-datareader
, в том числе в последующих conda update --all
запусках. 2Этот ответ содержит более полное описание системы Conda MatchSpec, который охватывает объем того, что может быть указано.
Хотя это не то, чего на самом деле хочет OP, возможно, стоит уточнить, почему произошло переключение каналов и как можно явно указать канал.
Флаг --channel|-c
добавляет (и устанавливает приоритет) канал только во время команды, с которой он используется. Он не сообщает Conda, что конкретный пакет должен поступать из этого канала. Следовательно, поскольку OP, вероятно, имеет приоритет conda-forge по умолчанию в своей глобальной / пользовательской конфигурации (см. conda config --show channels
), запуск conda update --all
просто переключится обратно на последнюю загруженную сборку.
Чтобы явно указать, что пакет должен прийти из канала, вместо этого следует использовать
conda install anaconda::pandas-datareader
Затем это добавит anaconda::pandas-datareader
в явные спецификации, и это должно зафиксировать тот факт, что ожидается, что pandas-datareader
будет поступать из канала анаконды.
В противном случае другим вариантом может быть закрепление пакета.
[1] One can check explicit specifications with conda env export --from-history
.
[2] Be aware that some flags may override explicit specifications without warning, such as --update-deps
.
Спасибо за отличный ответ. Я проверил путем тестирования, что
conda install 'pandas-datareader>=0.9'
решит проблему. Отмечен как правильный ответ.