Очевидно, что conda не может найти некоторые очень распространенные пакеты: что я делаю не так? - PullRequest
1 голос
/ 05 марта 2019

Среда: я использую conda 4.6.7 на Mac с High Sierra.

У меня есть какой-то устаревший код Python, и в первую очередь я бы хотел его запустить. Конечно, так как это исследовательский код, я не ожидал найти «модные вещи (!!)», такие как набор тестов, но я надеялся, что будет предоставлен как минимум файл requirements.txt. Несбыточная мечта. После GREP-анализа списка import s для различных файлов, составляющих проект, я пришел к следующему списку пакетов для установки:

conda install os sys math time scipy numpy zipfile urllib.request shutil PIL skimage config itertools logging json re random collections matplotlib visualize glob random datetime tensorflow keras colorsys IPython

Я положил их всех в один вызов conda, потому что, согласно

https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands

Вы должны

Установите все нужные вам программы в этой среде на в то же время. Установка 1 программы за раз может привести к зависимости конфликты.

(кстати, есть ли способ включить в команду разрыв строки или он должен быть таким длинным?)

Однако conda выдает мне ошибку:

PackagesNotFoundError: The following packages are not available from current channels:

  - config
  - math
  - visualize
  - datetime
  - urllib.request
  - re
  - logging
  - json
  - os
  - glob
  - collections
  - sys
  - colorsys
  - itertools
  - random
  - zipfile
  - time
  - shutil
  - skimage

Это кажется мне странным, потому что, по крайней мере, некоторые из них очень распространены. Эти пакеты в моей среде conda:

# Name                    Version                   Build  Channel
ca-certificates           2019.1.23                     0
certifi                   2018.11.29               py36_0
libcxx                    4.0.1                hcfea43d_1
libcxxabi                 4.0.1                hcfea43d_1
libedit                   3.1.20181209         hb402a30_0
libffi                    3.2.1                h475c297_4
ncurses                   6.1                  h0a44026_1
openssl                   1.1.1b               h1de35cc_0
pip                       19.0.3                   py36_0
python                    3.6.8                haf84260_0
readline                  7.0                  h1de35cc_5
setuptools                40.8.0                   py36_0
sqlite                    3.26.0               ha441bb4_0
tk                        8.6.8                ha441bb4_0
wheel                     0.33.1                   py36_0
xz                        5.2.4                h1de35cc_4
zlib                      1.2.11               h1de35cc_3

Как я могу решить вышеуказанную проблему?

Ответы [ 2 ]

3 голосов
/ 05 марта 2019

Большинство этих пакетов (например, math, random, itertools ....) являются частью стандартной библиотеки python , поэтому должны быть доступны при любой стандартной установке python (даже если они не отображаются в выводе conda list).Поэтому Conda не устанавливает их отдельно или не включает в свои списки пакетов.

Другие проблемы с вашей попыткой связаны с именами пакетов.Например, вы пытаетесь установить scikit-image, но используете короткое имя skimage (которое используется после его установки для импорта, например import skimage).Если вы используете conda install scikit-image, conda найдет его.

0 голосов
/ 05 марта 2019

Попробуйте сделать это через скрипт оболочки. Перейдите в папку, где находится файл needs.txt, а затем

while read requirement; do conda install --yes $requirement; done < requirements.txt

в противном случае вам не обязательно использовать conda - просто перейдите в среду

conda activate <environmentname>
pip install -r requirements.txt

для стандартных и некоторых других ... пакетов

conda install anaconda
...