Попробуйте запустить следующий скрипт из вашего env. Для меня это все ссылки на Python 3.6.6, хотя он не работает на xgboost недоступен. Скорее всего, будет отличаться в вашей среде. Все, что нужно - это обернуть conda create
скриптом Python, чтобы сделать его независимым от ОС. Протестировано с Python 3.6.6 на Windows.
from subprocess import run, PIPE, DEVNULL
import json
deps = ['dask-xgboost=0.1.5', 'nomkl', 'ipywidgets=7.4.0', 'pandas=0.23.4', 'numexpr=2.6.5', 'matplotlib=2.2.2', 'scipy=1.1.0', 'seaborn=0.9.0', 'scikit-learn=0.19.1', 'scikit-image=0.14.0', 'sympy=1.2', 'cython=0.28.5', 'patsy=0.5.0', 'statsmodels=0.8.0', 'dill=0.2.8.2', 'numba=0.38.1', 'bokeh=0.13.0', 'sqlalchemy=1.2.10', 'hdf5', 'libnetcdf', 'netcdf4', 'h5py=2.8.0', 'vincent=0.4.4', 'beautifulsoup4=4.6.1', 'protobuf=3.6.0', 'tensorflow=1.10', 'opencv', 'keras=2.1', 'dask=0.19.0', 'dask-glm=0.1.0', 'dask-ml=0.9.0', 'dask-kubernetes=0.5.0', 'msgpack-python', 'distributed=1.23']
for d in deps:
links = run('conda create --dry-run --json -n dummy ' + d, stdout=PIPE, stderr=DEVNULL)
if links.returncode == 0:
links = json.loads(links.stdout)
if 'actions' in links:
links = links['actions']['LINK']
p = [l for l in links if l['name'] == 'python']
if len(p): print("{} links python={}".format(d, p[0]['version']))
else: print("{} - no python".format(d))
else: print("{} - no actions".format(d))
else: print("{} failed: {}".format(d, links.stdout.decode('ascii')))
Может быть более оборонительным, но мне лень, извините:)