当频道不再提供包装时,复制conda环境

时间:2018-09-07 07:45:07

标签: python conda

我想发布用于科学论文基础数据分析的conda环境。我使用conda env export > environment.yml

将环境保存到.yml文件

我能够使用conda env create -f environment.yml在另一台机器上重新创建相同的环境。几个月后,使用相同的.yml文件创建环境失败了:

ResolvePackageNotFound: - vc=14.1=h0510ff6_3 - vs2015_runtime=15.5.2=3

大概这些版本在文件中指定的通道上不再可用?还是这可能反映出另一个问题?

在我的具体情况下,确切的版本也许没什么大不了,但是这个问题似乎使保存环境的目的摆在首位。是否存在另一种命令或策略来以一种更适合未来的方式来保存环境?

我正在尝试使用miniconda安装环境。

conda版本4.5.4

python版本:3.6.5.final.0

这是完整的.yml文件:

    name: jlsocial
channels:
  - conda-forge
  - defaults
dependencies:
  - ca-certificates=2018.4.16=0
  - certifi=2018.4.16=py36_0
  - libiconv=1.15=hfa6e2cd_1
  - libxml2=2.9.8=haffccfe_2
  - libxslt=1.1.32=h5632236_1
  - lxml=4.2.3=py36heafd4d3_0
  - openssl=1.0.2o=hfa6e2cd_1
  - svglib=0.8.1=py36_0
  - svgutils=0.3.0=py36_0
  - backcall=0.1.0=py36_0
  - blas=1.0=mkl
  - bleach=2.1.3=py36_0
  - blosc=1.14.3=he51fdeb_0
  - bokeh=0.12.16=py36_0
  - bzip2=1.0.6=hfa6e2cd_5
  - click=6.7=py36hec8c647_0
  - cloudpickle=0.5.3=py36_0
  - colorama=0.3.9=py36h029ae33_0
  - cycler=0.10.0=py36h009560c_0
  - cytoolz=0.9.0.1=py36hfa6e2cd_0
  - dask=0.17.5=py36_0
  - dask-core=0.17.5=py36_0
  - decorator=4.3.0=py36_0
  - distributed=1.21.8=py36_0
  - entrypoints=0.2.3=py36hfd66bb0_2
  - freetype=2.8=h51f8f2c_1
  - hdf5=1.10.2=hac2f561_1
  - heapdict=1.0.0=py36_2
  - html5lib=1.0.1=py36h047fa9f_0
  - icc_rt=2017.0.4=h97af966_0
  - icu=58.2=ha66f8fd_1
  - imageio=2.3.0=py36_0
  - intel-openmp=2018.0.0=8
  - ipykernel=4.8.2=py36_0
  - ipython=6.4.0=py36_0
  - ipython_genutils=0.2.0=py36h3c5d0ee_0
  - ipywidgets=7.2.1=py36_0
  - jedi=0.12.0=py36_1
  - jinja2=2.10=py36h292fed1_0
  - jpeg=9b=hb83a4c4_2
  - jsonschema=2.6.0=py36h7636477_0
  - jupyter=1.0.0=py36_4
  - jupyter_client=5.2.3=py36_0
  - jupyter_console=5.2.0=py36h6d89b47_1
  - jupyter_core=4.4.0=py36h56e9d50_0
  - kiwisolver=1.0.1=py36h12c3424_0
  - libpng=1.6.34=h79bbb47_0
  - libsodium=1.0.16=h9d3ae62_0
  - libtiff=4.0.9=hb8ad9f9_1
  - locket=0.2.0=py36hfed976d_1
  - lzo=2.10=h6df0209_2
  - m2w64-gcc-libgfortran=5.3.0=6
  - m2w64-gcc-libs=5.3.0=7
  - m2w64-gcc-libs-core=5.3.0=7
  - m2w64-gmp=6.1.0=2
  - m2w64-libwinpthread-git=5.0.0.4634.697f757=2
  - markupsafe=1.0=py36h0e26971_1
  - matplotlib=2.2.2=py36h153e9ff_1
  - mistune=0.8.3=py36hfa6e2cd_1
  - mkl=2018.0.2=1
  - mkl_fft=1.0.1=py36h452e1ab_0
  - mkl_random=1.0.1=py36h9258bd6_0
  - msgpack-python=0.5.6=py36he980bc4_0
  - msys2-conda-epoch=20160418=1
  - nbconvert=5.3.1=py36h8dc0fde_0
  - nbformat=4.4.0=py36h3a5bc1b_0
  - networkx=2.1=py36_0
  - notebook=5.5.0=py36_0
  - numexpr=2.6.5=py36hcd2f87e_0
  - numpy=1.14.3=py36h9fa60d3_1
  - numpy-base=1.14.3=py36h555522e_1
  - olefile=0.45.1=py36_0
  - opencv=3.3.1=py36h20b85fd_1
  - packaging=17.1=py36_0
  - pandas=0.23.0=py36h830ac7b_0
  - pandoc=1.19.2.1=hb2460c7_1
  - pandocfilters=1.4.2=py36h3ef6317_1
  - parso=0.2.0=py36_0
  - partd=0.3.8=py36hc8e763b_0
  - patsy=0.5.0=py36_0
  - pickleshare=0.7.4=py36h9de030f_0
  - pillow=5.1.0=py36h0738816_0
  - pip=10.0.1=py36_0
  - prompt_toolkit=1.0.15=py36h60b8f86_0
  - psutil=5.4.5=py36hfa6e2cd_0
  - pygments=2.2.0=py36hb010967_0
  - pyparsing=2.2.0=py36h785a196_1
  - pyqt=5.9.2=py36h1aa27d4_0
  - pytables=3.4.3=py36he6f6034_1
  - python=3.6.5=h0c2934d_0
  - python-dateutil=2.7.3=py36_0
  - pytz=2018.4=py36_0
  - pywavelets=0.5.2=py36hc649158_0
  - pywinpty=0.5.1=py36_0
  - pyyaml=3.12=py36h1d1928f_1
  - pyzmq=17.0.0=py36hfa6e2cd_1
  - qt=5.9.5=vc14he4a7d60_0
  - qtconsole=4.3.1=py36h99a29a9_0
  - reportlab=3.4.0=py36_0
  - scikit-image=0.13.1=py36hfa6e2cd_1
  - scikit-learn=0.19.1=py36h53aea1b_0
  - scipy=1.1.0=py36h672f292_0
  - seaborn=0.8.1=py36h9b69545_0
  - send2trash=1.5.0=py36_0
  - setuptools=39.1.0=py36_0
  - simplegeneric=0.8.1=py36_2
  - sip=4.19.8=py36h6538335_0
  - six=1.11.0=py36h4db2310_1
  - snappy=1.1.7=h777316e_3
  - sortedcontainers=1.5.10=py36_0
  - sqlite=3.23.1=h35aae40_0
  - statsmodels=0.9.0=py36h452e1ab_0
  - tblib=1.3.2=py36h30f5020_0
  - terminado=0.8.1=py36_1
  - testpath=0.3.1=py36h2698cfe_0
  - tk=8.6.7=hcb92d03_3
  - toolz=0.9.0=py36_0
  - tornado=5.0.2=py36_0
  - traitlets=4.3.2=py36h096827d_0
  - vc=14.1=h0510ff6_3
  - vs2015_runtime=15.5.2=3
  - wcwidth=0.1.7=py36h3d5aa90_0
  - webencodings=0.5.1=py36h67c50ae_1
  - wheel=0.31.1=py36_0
  - widgetsnbextension=3.2.1=py36_0
  - wincertstore=0.2=py36h7fe50ca_0
  - winpty=0.4.3=4
  - wxpython=4.0.1=py36h4cd245c_0
  - yaml=0.1.7=hc54c509_2
  - zeromq=4.2.5=hc6251cf_0
  - zict=0.1.3=py36h2d8e73e_0
  - zlib=1.2.11=h8395fce_2
  - pip:
    - tables==3.4.3
prefix: C:\Users\jlarsch\AppData\Local\Continuum\miniconda3\envs\jlsocial

3 个答案:

答案 0 :(得分:4)

直到今天我几乎都遇到了同样的问题。基于其他SO post,我将有问题的两个软件包移到了.yml文件的pip部分。即:

dependencies:
  - vc
  - vs2015_runtime

这似乎为我解决了这个问题,尽管我不确定这是否一定是最好的方法。

编辑:仔细检查后,我意识到这并不能解决问题。取而代之的是,我将两个软件包移回了依赖项,并删除了版本要求(取而代之的是vc的旧版本)。即:

vc                        14                   h0510ff6_3
vs2015_runtime            14.0.25123                    3

结果版本为:

//div[@class='RoundRobinTable-cell RoundRobinTable-cell--center']

两台计算机上都有类似的设置,所以我不确定为什么会发生这种情况。

答案 1 :(得分:0)

对于感兴趣的任何人,此问题的原因已通过以下连续方法解决并关闭: https://github.com/conda/conda/issues/7714 并在以下进一步讨论: https://github.com/ContinuumIO/anaconda-issues/issues/10004

但是,简而言之,这两个软件包已被“吊销”,新的软件包求解器(对于anaconda python 3.7)逻辑不能很好地处理这种情况。

https://github.com/conda/conda/issues/7714复制的可能解决方案:

如果您当前已损坏,请修复环境的步骤:

  1. 记下当前基础conda环境的位置。对于此处的示例,假设它位于C:\Users\ScoobyDoo\Anaconda3。您还需要了解遇到这些错误之前的python版本。假设在此示例中为python 3.5。
  2. https://repo.continuum.io/miniconda/Miniconda3-latest-Windows-x86_64.exe下载miniconda。 (您可以使用Miniconda3或Miniconda2;这无关紧要。)
  3. 运行miniconda安装程序,为“ Just Me”选择安装,然后指定与当前基本环境不同的目标文件夹。对于此示例,我们将其放置在C:\temp-conda上。
  4. 在任何命令提示符下,运行命令C:\temp-conda\Scripts\conda.exe install -p C:\Users\ScoobyDoo\Anaconda3 python=3.5 conda
  5. 您现在应该可以恢复正常的conda了,并且可以根据需要删除C:\temp-conda目录。
  6. 当您运行新的miniconda安装程序时,“ Anaconda Prompt”快捷方式可能已更改。如果不再正常工作,请右键单击“ Anaconda Prompt”图标,选择“属性”,并使Target字段指向C:\Users\ScoobyDoo\Anaconda3而不是C:\temp-conda。请注意,您可能必须对Target字段进行两项更改,而不仅仅是一项更改。由于字段框非常小,因此通常更容易选择字段,先按Ctrl-A再按Ctrl-C(先选择所有文本然后复制),然后将文本粘贴到空的记事本文件中,进行编辑,然后复制并将编辑后的文本粘贴回Target字段中。

答案 2 :(得分:0)

我有同样的问题,当我更改.yml文件中的行时,它终于起作用了。首先,我编写了命令以查看所有软件包:

$conda list 

并找到vc=14....=...行 返回.yml文件并更改名称 它对我有用