Я борюсь с некоторым устаревшим кодом Python. Благодаря помощи этот отличный ответ я смог написать вызов conda
, который выполняется правильно и, надеюсь, содержит все пакеты, необходимые для запуска кода:
conda install IPython scipy numpy PIL scikit-image matplotlib tensorflow keras
Однако теперь conda
говорит мне, что
The following packages will be DOWNGRADED:
certifi 2018.11.29-py36_0 --> 2018.11.29-py27_0
pip 19.0.3-py36_0 --> 19.0.3-py27_0
python 3.6.8-haf84260_0 --> 2.7.15-h8f8e585_6
setuptools 40.8.0-py36_0 --> 40.8.0-py27_0
wheel 0.33.1-py36_0 --> 0.33.1-py27_0
Что что?! Питон 2.7.15? Ни за что. Кроме того, проект README содержит «инструкции» по запуску кода с Python 3.6, поэтому теоретически код должен быть совместимым с Python 3.6. Есть ли способ точно определить, какой именно пакет и/или комбинация пакетов вызывают понижение версии?
Прежде чем вы это скажете, я знаю, что могу просто установить один пакет за раз и посмотреть, какой из них виноват. Но документы conda
специально предостерегают от установки пакетов, необходимых в среде, по одному:
Установите все программы, которые вы хотите в этой среде, одновременно. Установка одной программы за раз может привести к конфликту зависимостей.
PS вывод команды conda install
на самом деле намного длиннее, чем тот, который я включил здесь. Я скопировал только часть DOWNGRADE
, потому что это единственное, что меня беспокоит, но, конечно, если вы хотите, я могу включить полный многостраничный вывод.
proceed [y/n]
, я говорю «нет», верно? - person DeltaIV   schedule 05.03.2019PIL
. Я попытаюсь понять, что делает этот пакет PIL, и работает ли код без него. - person DeltaIV   schedule 05.03.2019pip3 install pillow
, если я правильно ее интерпретирую. Я все равно попробую сделатьconda install pillow
и посмотреть, работает ли он, но если он снова попросит меня перейти на более раннюю версию, я попробую сpip3
. Что касаетсяopen-cv
, то я мало знаю и оopen-cv
, и оpillow
: если вы говорите, что первое лучше второго, я вам верю. Тем не менее, я твердо убежден, что первое, что нужно сделать, получив устаревший код, — это заставить его работать с минимальными модификациями кода. Таким образом, если вы сильно 1/ - person DeltaIV   schedule 05.03.2019pillow
(PIL) вызовамиopen-cv
, я бы не хотел пока вводить дополнительную энтропию в код. - person DeltaIV   schedule 05.03.2019