【问题标题】:how to create a custom python environment from yml file *with* downloads of missing packages如何从 yml 文件创建自定义 python 环境 *with* 下载丢失的包
【发布时间】:2021-01-06 21:59:09
【问题描述】:

我正在尝试构建一个支持旧 hddm 库的 python 3.5 环境。由于 my/anaconda 明显无法忽略(或降级)10.1 cuda 库以支持与 hddm 一起使用的旧库,因此标准方法失败了。

有一个描述成功环境的 yml 文件。但是广告的命令

conda env 创建-file hddm_py35.yml

失败,错误列出所有“未找到”的包。以下是错误。

(base) PS C:\Users\Peter\anaconda3_Sep2020> conda env create --file .\hddm_py35.yml 收集包元数据(repodata.json):完成 解决环境:失败

ResolvePackageNotFound:

  • odo==0.5.0=py35_1
  • cffi==1.7.0=py35_0
  • 莳萝==0.2.5=py35_0
  • singledispatch==3.4.0.3=py35_0
  • nb_conda_kernels==2.0.0=py35_0
  • 请求==2.14.2=py35_0
  • scikit-learn==0.17.1=np111py35_1
  • wheel==0.29.0=py35_0
  • 绝地==0.9.0=py35_1
  • widgetsnbextension==1.2.6=py35_0
  • bitarray==0.8.1=py35_1
  • theano==1.0.2=py35_0
  • pytz==2016.6.1=py35_0
  • pylint==1.5.4=py35_1
  • ruamel_yaml==0.11.14=py35_0
  • partd==0.3.6=py35_0
  • llvmlite==0.13.0=py35_0
  • multipledispatch==0.4.8=py35_0
  • pyparsing==2.1.4=py35_0
  • console_shortcut==0.1.1=py35_1
  • ipython_genutils==0.1.0=py35_0
  • patsy==0.4.1=py35_0
  • pytest==2.9.2=py35_0
  • heapdict==1.0.0=py35_1
  • ipywidgets==5.2.2=py35_0
  • 散景==0.12.2=py35_0
  • hdf5==1.8.15.1=2
  • networkx==1.11=py35_0
  • backports==1.0=py35_0
  • pyasn1==0.1.9=py35_0
  • pyqt==5.6.0=py35h6538335_6
  • zlib==1.2.11=hbb18732_2
  • et_xmlfile==1.0.1=py35_0
  • traitlets==4.3.0=py35_0
  • colorama==0.3.7=py35_0
  • argcomplete==1.0.0=py35_1
  • pywin32==220=py35_1
  • astropy==1.2.1=np111py35_0
  • 鼻子==1.3.7=py35_1
  • freetype==2.8=h0224ed4_1
  • pkginfo==1.3.2=py35_0
  • cloudpickle==0.2.1=py35_0
  • sqlalchemy==1.0.13=py35_0
  • 惰性对象代理==1.2.1=py35_0
  • markupsafe==0.23=py35_2
  • prompt_toolkit==1.0.3=py35_0
  • pickleshare==0.7.4=py35_0
  • 其危险==0.24=py35_0
  • babel==2.3.4=py35_0
  • 点击==6.6=py35_0
  • 六==1.10.0=py35_0
  • libdynd==0.7.2=0
  • jdcal==1.2=py35_1
  • pymc==2.3.6=np111py35_2
  • pathlib2==2.1.0=py35_0
  • astroid==1.4.7=py35_0
  • numba==0.28.1=np111py35_0
  • qtconsole==4.2.1=py35_2
  • wrapt==1.10.6=py35_0
  • idna==2.1=py35_0
  • pytables==3.2.2=np111py35_4
  • _nb_ext_conf==0.3.0=py35_0
  • dynd-python==0.7.2=py35_0
  • numexpr==2.6.1=np111py35_0
  • werkzeug==0.11.11=py35_0
  • 绳子==0.9.4=py35_1
  • jupyter_client==4.4.0=py35_0
  • pyzmq==15.4.0=py35_0
  • python-dateutil==2.5.3=py35_0
  • beautifulsoup4==4.5.1=py35_0
  • blaze==0.10.1=py35_0
  • nbformat==4.1.0=py35_0
  • nbpresent==3.0.2=py35_0
  • sip==4.18=py35_0
  • 胸==0.2.3=py35_0
  • glob2==0.5=py35_0
  • 小盒==0.2.0=py35_1
  • mistune==0.7.3=py35_0
  • 雪花石膏==0.7.9=py35_0
  • setuptools==27.2.0=py35_1
  • win_unicode_console==0.5=py35_0
  • filelock==2.0.6=py35_0
  • _license==1.1=py35_1
  • ipykernel==4.5.0=py35_0
  • qt==5.6.2=vc14h6f76a7e_12
  • pep8==1.7.0=py35_0
  • xlwings==0.10.0=py35_0
  • spyder==3.0.0=py35_0
  • xlrd==1.0.0=py35_0
  • scipy==0.18.1=np111py35_0
  • dask==0.11.0=py35_0
  • nbconvert==4.2.0=py35_0
  • pip==8.1.2=py35_0
  • mkl==11.3.3=1
  • nb_anacondacloud==1.2.0=py35_0
  • cython==0.24.1=py35_0
  • flask-cors==2.1.2=py35_0
  • ipython==5.1.0=py35_0
  • cycler==0.10.0=py35_0
  • jpeg==9b=he27b436_2
  • menuinst==1.4.1=py35_0
  • anaconda==4.2.0=np111py35_0
  • configobj==5.0.6=py35_0
  • boto==2.42.0=py35_0
  • unicodecsv==0.14.1=py35_0
  • scikit-image==0.12.3=np111py35_1
  • contextlib2==0.5.3=py35_0
  • conda-build==3.0.19=py35h15d37ab_0
  • jinja2==2.8=py35_1
  • conda-verify==2.0.0=py35_0
  • get_terminal_size==1.0.0=py35_0
  • qtpy==1.1.2=py35_0
  • anaconda-client==1.5.1=py35_0
  • 装饰器==4.0.10=py35_0
  • ply==3.9=py35_0
  • openpyxl==2.3.2=py35_0
  • sockjs-tornado==1.0.3=py35_0
  • pyyaml==3.12=py35_0
  • snowballstemmer==1.2.1=py35_0
  • toolz==0.8.0=py35_0
  • py==1.4.31=py35_0
  • xlwt==1.1.2=py35_0
  • client==1.2.2=py35_0
  • 瓶颈==1.1.0=np111py35_0
  • jupyter==1.0.0=py35_3
  • mkl-service==1.1.2=py35_2
  • simplegeneric==0.8.1=py35_1
  • wcwidth==0.1.7=py35_0
  • h5py==2.6.0=np111py35_2
  • gevent==1.1.2=py35_0
  • pycrypto==2.6.1=py35_4
  • datashape==0.5.2=py35_0
  • psutil==4.3.1=py35_0
  • nltk==3.2.1=py35_0
  • jsonschema==2.5.1=py35_0
  • 笔记本==4.2.3=py35_0
  • pycparser==2.14=py35_1
  • xlsxwriter==0.9.3=py35_0
  • jupyter_core==4.2.0=py35_0
  • qtawesome==0.3.3=py35_0
  • fastcache==1.0.2=py35_1
  • jupyter_console==5.0.0=py35_0
  • 龙卷风==4.4.1=py35_0
  • path.py==8.2.1=py35_0
  • pyflakes==1.3.0=py35_0
  • sympy==1.0=py35_0
  • 熊猫==0.20.1=np111py35_0
  • pygments==2.1.3=py35_0
  • anaconda-clean==1.0.0=py35_0
  • mpmath==0.19=py35_1
  • comtypes==1.1.2=py35_0
  • 密码学==1.5=py35_0
  • chardet==3.0.4=py35_0
  • 入口点==0.2.2=py35_0
  • 狮身人面像==1.4.6=py35_0
  • greenlet==0.4.10=py35_0
  • anaconda-navigator==1.3.1=py35_0
  • flask==0.11.1=py35_0
  • pyopenssl==16.2.0=py35_0
  • lxml==3.6.4=py35_0
  • icu==58.2=h3fcc66b_1
  • docutils==0.12=py35_2
  • statsmodels==0.6.1=np111py35_1
  • nb_conda==2.0.0=py35_0
  • imagesize==0.7.1=py35_0

(基础)PS C:\Users\Peter\anaconda3_Sep2020>

失败发生在几秒钟内。我感觉 conda 甚至没有尝试去寻找这些包!?!?

  1. 我应该下载这些包,把它们放在某个地方,然后告诉 conda 在我的硬盘上找到它们吗?

  2. 是否有一个标志告诉 conda 通常对所有“丢失”的包进行查找和加载——但仅限于我所描述的环境中?在我的基础环境 (3.8) 中,我不想降级。

  3. 是否应该创建一个新的 3.5 环境,然后逐个处理列表并手动卸载/删除/降级每个包?

  4. 元问题:这一定是一个常见问题解答,但我无法通过谷歌搜索答案。这通常意味着“从 yaml 文件中安装 conda 环境”的谷歌搜索不包含适当的词汇表,试图诱导 conda 从 yaml 文件安装环境。我应该问什么问题?

【问题讨论】:

  • 我决定尝试手动添加包。第一个包是“odo”,所以 anaconda.org 告诉我版本 0.5 可从“blaze”获得,所以我尝试“conda install -c blaze odo”,发现我刚刚得到的是 0.5.1,而不是 0.5.0 .大鼠。并且该软件包安装在 3.8 而不是 3.5 中。我是 3.5 环境,因为我这样做(激活 hddm_35b)。所以我尝试“conda remove odo”,这似乎有效。
  • 所以我再次尝试使用“conda install -c blaze odo==0.5.0=py35_1”,现在 conda 声称找不到该包。又是老鼠。 “conda install -c blaze odo==0.5.0=py35” 未找到。 “conda install -c blaze odo==0.5.0” 老鼠。大鼠。大鼠。这不是如何做到这一点。

标签: installation anaconda conda environment


【解决方案1】:
1) Am I supposed to download these packages, put them somewhere, and then 
tell conda to find them on my hard drive?

没有必要。但在 anaconda.org 上搜索版本有助于确定一对一手动下载的渠道。

2) Is there a flag that tells conda to do its usually find-and-load for all 
"missing" packages -- but only in the environment I'm describing? In my base 
environment (3.8) I don't wish to downgrade.

没有证据表明 conda 会自动下载当前环境中缺少的 yaml 文件中列出的文件。

3) Should make a new 3.5 environment and then work through the list one-by-
one and uninstall/remove/downgrade each package by hand?

是的。

4) Meta question: This must be a FAQ, and yet I'm not able to google for the 
answer. That usually means googling for "conda install environment from yaml 
file" doesn't contain the appropriate vocabulary for, well, trying to induce 
conda to install an environment from a yaml file. What question should I have 
asked?

没有证据表明 yaml 文件只是环境中的软件包版本列表。它们不能用于创建新环境(可能除非所有组件都已存在于宿主环境中),因此它们的价值主要是注释性的。很明显。


2020年为hddm做环境的情况,好吧,不要尝试。 Cuda 支持将对您不利。 https://colab.research.google.com/ 有一个 hddm 主机,它已正确配置(没有 cuda 中断),因此您可以使用它来踢轮胎等。让 hddm 在任何其他环境中工作可能需要专用硬件,以便可以操纵 cuda 驱动程序仅适用于此应用程序,不会在此过程中破坏任何其他应用程序。

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2019-08-28
    • 2020-02-21
    • 2016-12-19
    • 2018-03-29
    • 2019-06-26
    相关资源
    最近更新 更多