首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0838-通过Anaconda部署python3环境

0838-通过Anaconda部署python3环境

作者头像
Fayson
发布2021-04-30 12:13:56
1.3K0
发布2021-04-30 12:13:56
举报
文章被收录于专栏:Hadoop实操Hadoop实操Hadoop实操

1.Parcel方式

1.1 官方Parcel

参考https://docs.anaconda.com/anaconda-scale/cloudera-cdh/

免费的parcel提供的是python2,需要自己安装python3的虚拟环境

parcel下载地址为 https://repo.continuum.io/pkgs/misc/parcels/

注意anaconda不需要csd文件

1.1.1 创建python3环境

在线安装下conda创建并激活python3环境的命令如下,可以按照需要创建需要的python版本

需要注意的是某些版本的spark不支持Python 3.6,需要安装python3.5,参照SPARK-19019 https://issues.apache.org/jira/browse/SPARK-19019

# --offline离线模式,
# -n 为环境的名称
# —unknown为安装没有依赖的python包,如果有依赖使用conda install会报错,需要搭建一个内部仓库。
conda create -n py3 python=3.5
source activate py3

离线安装下参照在线安装一个python3的环境,将该环境直接拷贝至离线机器的相同目录即可。

1.2 自定义Parcel

参考Python环境,在https://repo.anaconda.com/archive/下载需要的版本,安装后目录结构如下

在该目录中建立meta文件夹

在meta文件夹中创建conda_env.sh文件,内容如下

#!/bin/bash

if [ -z "${CDH_PYTHON}" ]; then
    export CDH_PYTHON=${PARCELS_ROOT}/${PARCEL_DIRNAME}/bin/python
fi

在meta文件夹中创建parcel.json文件,内容需要使用一段代码生成,代码如下,

这里的name和之后步骤中创建的文件夹有严格对应要求,否则打包parcel和分发时会出错

sample.json为官方提供的anaconda2的parcel.json,内容如下

{
  "components": [
    {
      "name": "Anaconda", 
      "pkg_version": "2019.10", 
      "version": "2019.10"
    }
  ], 
  "extraVersionInfo": {
    "baseVersion": "2019.10", 
    "fullVersion": "2019.10-el6", 
    "patchCount": "p0"
  }, 
  "groups": [], 
  "name": "Anaconda", 
  "packages": [
    {
      "name": "_ipyw_jlab_nb_ext_conf", 
      "version": "0.1.0-py27_0"
    }, 
    {
      "name": "_libgcc_mutex", 
      "version": "0.1-main"
    }, 
    {
      "name": "alabaster", 
      "version": "0.7.12-py27_0"
    }, 
    {
      "name": "anaconda", 
      "version": "2019.10-py27_0"
    }, 
    {
      "name": "anaconda-client", 
      "version": "1.7.2-py27_0"
    }, 
    {
      "name": "anaconda-navigator", 
      "version": "1.9.7-py27_0"
    }, 
    {
      "name": "anaconda-project", 
      "version": "0.8.3-py_0"
    }, 
    {
      "name": "asn1crypto", 
      "version": "1.0.1-py27_0"
    }, 
    {
      "name": "astroid", 
      "version": "1.6.5-py27_0"
    }, 
    {
      "name": "astropy", 
      "version": "2.0.9-py27hdd07704_0"
    }, 
    {
      "name": "atomicwrites", 
      "version": "1.3.0-py27_1"
    }, 
    {
      "name": "attrs", 
      "version": "19.2.0-py_0"
    }, 
    {
      "name": "babel", 
      "version": "2.7.0-py_0"
    }, 
    {
      "name": "backports", 
      "version": "1.0-py_2"
    }, 
    {
      "name": "backports.functools_lru_cache", 
      "version": "1.5-py_2"
    }, 
    {
      "name": "backports.os", 
      "version": "0.1.1-py27_0"
    }, 
    {
      "name": "backports.shutil_get_terminal_size", 
      "version": "1.0.0-py27_2"
    }, 
    {
      "name": "backports.tempfile", 
      "version": "1.0-py_1"
    }, 
    {
      "name": "backports.weakref", 
      "version": "1.0.post1-py_1"
    }, 
    {
      "name": "backports_abc", 
      "version": "0.5-py27_0"
    }, 
    {
      "name": "beautifulsoup4", 
      "version": "4.8.0-py27_0"
    }, 
    {
      "name": "bitarray", 
      "version": "1.0.1-py27h7b6447c_0"
    }, 
    {
      "name": "bkcharts", 
      "version": "0.2-py27_0"
    }, 
    {
      "name": "blas", 
      "version": "1.0-mkl"
    }, 
    {
      "name": "bleach", 
      "version": "3.1.0-py27_0"
    }, 
    {
      "name": "blosc", 
      "version": "1.16.3-hd408876_0"
    }, 
    {
      "name": "bokeh", 
      "version": "1.3.4-py27_0"
    }, 
    {
      "name": "boto", 
      "version": "2.49.0-py27_0"
    }, 
    {
      "name": "bottleneck", 
      "version": "1.2.1-py27h035aef0_1"
    }, 
    {
      "name": "bzip2", 
      "version": "1.0.8-h7b6447c_0"
    }, 
    {
      "name": "ca-certificates", 
      "version": "2019.8.28-0"
    }, 
    {
      "name": "cairo", 
      "version": "1.14.12-h8948797_3"
    }, 
    {
      "name": "cdecimal", 
      "version": "2.3-py27h14c3975_3"
    }, 
    {
      "name": "certifi", 
      "version": "2019.9.11-py27_0"
    }, 
    {
      "name": "cffi", 
      "version": "1.12.3-py27h2e261b9_0"
    }, 
    {
      "name": "chardet", 
      "version": "3.0.4-py27_1003"
    }, 
    {
      "name": "click", 
      "version": "7.0-py27_0"
    }, 
    {
      "name": "cloudpickle", 
      "version": "1.2.2-py_0"
    }, 
    {
      "name": "clyent", 
      "version": "1.2.2-py27_1"
    }, 
    {
      "name": "colorama", 
      "version": "0.4.1-py27_0"
    }, 
    {
      "name": "conda", 
      "version": "4.7.12-py27_0"
    }, 
    {
      "name": "conda-build", 
      "version": "3.18.9-py27_3"
    }, 
    {
      "name": "conda-env", 
      "version": "2.6.0-1"
    }, 
    {
      "name": "conda-package-handling", 
      "version": "1.6.0-py27h7b6447c_0"
    }, 
    {
      "name": "conda-verify", 
      "version": "3.4.2-py_1"
    }, 
    {
      "name": "configparser", 
      "version": "4.0.2-py27_0"
    }, 
    {
      "name": "contextlib2", 
      "version": "0.6.0-py_0"
    }, 
    {
      "name": "cryptography", 
      "version": "2.7-py27h1ba5d50_0"
    }, 
    {
      "name": "curl", 
      "version": "7.65.3-hbc83047_0"
    }, 
    {
      "name": "cycler", 
      "version": "0.10.0-py27_0"
    }, 
    {
      "name": "cython", 
      "version": "0.29.13-py27he6710b0_0"
    }, 
    {
      "name": "cytoolz", 
      "version": "0.10.0-py27h7b6447c_0"
    }, 
    {
      "name": "dask", 
      "version": "1.2.2-py_0"
    }, 
    {
      "name": "dask-core", 
      "version": "1.2.2-py_0"
    }, 
    {
      "name": "dbus", 
      "version": "1.13.6-h746ee38_0"
    }, 
    {
      "name": "decorator", 
      "version": "4.4.0-py27_1"
    }, 
    {
      "name": "defusedxml", 
      "version": "0.6.0-py_0"
    }, 
    {
      "name": "distributed", 
      "version": "1.28.1-py27_0"
    }, 
    {
      "name": "docutils", 
      "version": "0.15.2-py27_0"
    }, 
    {
      "name": "entrypoints", 
      "version": "0.3-py27_0"
    }, 
    {
      "name": "enum34", 
      "version": "1.1.6-py27_1"
    }, 
    {
      "name": "et_xmlfile", 
      "version": "1.0.1-py27_0"
    }, 
    {
      "name": "expat", 
      "version": "2.2.6-he6710b0_0"
    }, 
    {
      "name": "fastcache", 
      "version": "1.1.0-py27h7b6447c_0"
    }, 
    {
      "name": "filelock", 
      "version": "3.0.12-py_0"
    }, 
    {
      "name": "flask", 
      "version": "1.1.1-py_0"
    }, 
    {
      "name": "fontconfig", 
      "version": "2.13.0-h9420a91_0"
    }, 
    {
      "name": "freetype", 
      "version": "2.9.1-h8a8886c_1"
    }, 
    {
      "name": "fribidi", 
      "version": "1.0.5-h7b6447c_0"
    }, 
    {
      "name": "funcsigs", 
      "version": "1.0.2-py27_0"
    }, 
    {
      "name": "functools32", 
      "version": "3.2.3.2-py27_1"
    }, 
    {
      "name": "future", 
      "version": "0.17.1-py27_0"
    }, 
    {
      "name": "futures", 
      "version": "3.3.0-py27_0"
    }, 
    {
      "name": "get_terminal_size", 
      "version": "1.0.0-haa9412d_0"
    }, 
    {
      "name": "gevent", 
      "version": "1.4.0-py27h7b6447c_0"
    }, 
    {
      "name": "glib", 
      "version": "2.56.2-hd408876_0"
    }, 
    {
      "name": "glob2", 
      "version": "0.7-py_0"
    }, 
    {
      "name": "gmp", 
      "version": "6.1.2-h6c8ec71_1"
    }, 
    {
      "name": "gmpy2", 
      "version": "2.0.8-py27h10f8cd9_2"
    }, 
    {
      "name": "graphite2", 
      "version": "1.3.13-h23475e2_0"
    }, 
    {
      "name": "greenlet", 
      "version": "0.4.15-py27h7b6447c_0"
    }, 
    {
      "name": "grin", 
      "version": "1.2.1-py27_4"
    }, 
    {
      "name": "gst-plugins-base", 
      "version": "1.14.0-hbbd80ab_1"
    }, 
    {
      "name": "gstreamer", 
      "version": "1.14.0-hb453b48_1"
    }, 
    {
      "name": "h5py", 
      "version": "2.9.0-py27h7918eee_0"
    }, 
    {
      "name": "harfbuzz", 
      "version": "1.8.8-hffaf4a1_0"
    }, 
    {
      "name": "hdf5", 
      "version": "1.10.4-hb1b8bf9_0"
    }, 
    {
      "name": "heapdict", 
      "version": "1.0.1-py_0"
    }, 
    {
      "name": "html5lib", 
      "version": "1.0.1-py27_0"
    }, 
    {
      "name": "icu", 
      "version": "58.2-h9c2bf20_1"
    }, 
    {
      "name": "idna", 
      "version": "2.8-py27_0"
    }, 
    {
      "name": "imageio", 
      "version": "2.6.0-py27_0"
    }, 
    {
      "name": "imagesize", 
      "version": "1.1.0-py27_0"
    }, 
    {
      "name": "importlib_metadata", 
      "version": "0.23-py27_0"
    }, 
    {
      "name": "intel-openmp", 
      "version": "2019.4-243"
    }, 
    {
      "name": "ipaddress", 
      "version": "1.0.22-py27_0"
    }, 
    {
      "name": "ipykernel", 
      "version": "4.10.0-py27_0"
    }, 
    {
      "name": "ipython", 
      "version": "5.8.0-py27_0"
    }, 
    {
      "name": "ipython_genutils", 
      "version": "0.2.0-py27_0"
    }, 
    {
      "name": "ipywidgets", 
      "version": "7.5.1-py_0"
    }, 
    {
      "name": "isort", 
      "version": "4.3.21-py27_0"
    }, 
    {
      "name": "itsdangerous", 
      "version": "1.1.0-py27_0"
    }, 
    {
      "name": "jbig", 
      "version": "2.1-hdba287a_0"
    }, 
    {
      "name": "jdcal", 
      "version": "1.4.1-py_0"
    }, 
    {
      "name": "jedi", 
      "version": "0.15.1-py27_0"
    }, 
    {
      "name": "jinja2", 
      "version": "2.10.3-py_0"
    }, 
    {
      "name": "jpeg", 
      "version": "9b-h024ee3a_2"
    }, 
    {
      "name": "jsonschema", 
      "version": "3.0.2-py27_0"
    }, 
    {
      "name": "jupyter", 
      "version": "1.0.0-py27_7"
    }, 
    {
      "name": "jupyter_client", 
      "version": "5.3.3-py27_1"
    }, 
    {
      "name": "jupyter_console", 
      "version": "5.2.0-py27_1"
    }, 
    {
      "name": "jupyter_core", 
      "version": "4.5.0-py_0"
    }, 
    {
      "name": "jupyterlab", 
      "version": "0.33.11-py27_0"
    }, 
    {
      "name": "jupyterlab_launcher", 
      "version": "0.11.2-py27h28b3542_0"
    }, 
    {
      "name": "kiwisolver", 
      "version": "1.1.0-py27he6710b0_0"
    }, 
    {
      "name": "krb5", 
      "version": "1.16.1-h173b8e3_7"
    }, 
    {
      "name": "lazy-object-proxy", 
      "version": "1.4.2-py27h7b6447c_0"
    }, 
    {
      "name": "libarchive", 
      "version": "3.3.3-h5d8350f_5"
    }, 
    {
      "name": "libcurl", 
      "version": "7.65.3-h20c2e04_0"
    }, 
    {
      "name": "libedit", 
      "version": "3.1.20181209-hc058e9b_0"
    }, 
    {
      "name": "libffi", 
      "version": "3.2.1-hd88cf55_4"
    }, 
    {
      "name": "libgcc-ng", 
      "version": "9.1.0-hdf63c60_0"
    }, 
    {
      "name": "libgfortran-ng", 
      "version": "7.3.0-hdf63c60_0"
    }, 
    {
      "name": "liblief", 
      "version": "0.9.0-h7725739_2"
    }, 
    {
      "name": "libpng", 
      "version": "1.6.37-hbc83047_0"
    }, 
    {
      "name": "libsodium", 
      "version": "1.0.16-h1bed415_0"
    }, 
    {
      "name": "libssh2", 
      "version": "1.8.2-h1ba5d50_0"
    }, 
    {
      "name": "libstdcxx-ng", 
      "version": "9.1.0-hdf63c60_0"
    }, 
    {
      "name": "libtiff", 
      "version": "4.0.10-h2733197_2"
    }, 
    {
      "name": "libtool", 
      "version": "2.4.6-h7b6447c_5"
    }, 
    {
      "name": "libuuid", 
      "version": "1.0.3-h1bed415_2"
    }, 
    {
      "name": "libxcb", 
      "version": "1.13-h1bed415_1"
    }, 
    {
      "name": "libxml2", 
      "version": "2.9.9-hea5a465_1"
    }, 
    {
      "name": "libxslt", 
      "version": "1.1.33-h7d1a2b0_0"
    }, 
    {
      "name": "linecache2", 
      "version": "1.0.0-py27_0"
    }, 
    {
      "name": "llvmlite", 
      "version": "0.29.0-py27hd408876_0"
    }, 
    {
      "name": "locket", 
      "version": "0.2.0-py27_1"
    }, 
    {
      "name": "lxml", 
      "version": "4.4.1-py27hefd8a0e_0"
    }, 
    {
      "name": "lz4-c", 
      "version": "1.8.1.2-h14c3975_0"
    }, 
    {
      "name": "lzo", 
      "version": "2.10-h49e0be7_2"
    }, 
    {
      "name": "markupsafe", 
      "version": "1.1.1-py27h7b6447c_0"
    }, 
    {
      "name": "matplotlib", 
      "version": "2.2.3-py27hb69df0a_0"
    }, 
    {
      "name": "mccabe", 
      "version": "0.6.1-py27_1"
    }, 
    {
      "name": "mistune", 
      "version": "0.8.4-py27h7b6447c_0"
    }, 
    {
      "name": "mkl", 
      "version": "2019.4-243"
    }, 
    {
      "name": "mkl-service", 
      "version": "2.3.0-py27he904b0f_0"
    }, 
    {
      "name": "mkl_fft", 
      "version": "1.0.14-py27ha843d7b_0"
    }, 
    {
      "name": "mkl_random", 
      "version": "1.1.0-py27hd6b4f25_0"
    }, 
    {
      "name": "mock", 
      "version": "3.0.5-py27_0"
    }, 
    {
      "name": "more-itertools", 
      "version": "5.0.0-py27_0"
    }, 
    {
      "name": "mpc", 
      "version": "1.1.0-h10f8cd9_1"
    }, 
    {
      "name": "mpfr", 
      "version": "4.0.1-hdf1c602_3"
    }, 
    {
      "name": "mpmath", 
      "version": "1.1.0-py27_0"
    }, 
    {
      "name": "msgpack-python", 
      "version": "0.6.1-py27hfd86e86_1"
    }, 
    {
      "name": "multipledispatch", 
      "version": "0.6.0-py27_0"
    }, 
    {
      "name": "navigator-updater", 
      "version": "0.2.1-py27_0"
    }, 
    {
      "name": "nbconvert", 
      "version": "5.6.0-py27_1"
    }, 
    {
      "name": "nbformat", 
      "version": "4.4.0-py27_0"
    }, 
    {
      "name": "ncurses", 
      "version": "6.1-he6710b0_1"
    }, 
    {
      "name": "networkx", 
      "version": "2.2-py27_1"
    }, 
    {
      "name": "nltk", 
      "version": "3.4.5-py27_0"
    }, 
    {
      "name": "nose", 
      "version": "1.3.7-py27_2"
    }, 
    {
      "name": "notebook", 
      "version": "5.7.8-py27_0"
    }, 
    {
      "name": "numba", 
      "version": "0.45.1-py27h962f231_0"
    }, 
    {
      "name": "numexpr", 
      "version": "2.7.0-py27h9e4a6bb_0"
    }, 
    {
      "name": "numpy", 
      "version": "1.16.5-py27h7e9f1db_0"
    }, 
    {
      "name": "numpy-base", 
      "version": "1.16.5-py27hde5b4d6_0"
    }, 
    {
      "name": "numpydoc", 
      "version": "0.9.1-py_0"
    }, 
    {
      "name": "olefile", 
      "version": "0.46-py27_0"
    }, 
    {
      "name": "openpyxl", 
      "version": "2.6.3-py_0"
    }, 
    {
      "name": "openssl", 
      "version": "1.1.1d-h7b6447c_2"
    }, 
    {
      "name": "packaging", 
      "version": "19.2-py_0"
    }, 
    {
      "name": "pandas", 
      "version": "0.24.2-py27he6710b0_0"
    }, 
    {
      "name": "pandoc", 
      "version": "2.2.3.2-0"
    }, 
    {
      "name": "pandocfilters", 
      "version": "1.4.2-py27_1"
    }, 
    {
      "name": "pango", 
      "version": "1.42.4-h049681c_0"
    }, 
    {
      "name": "parso", 
      "version": "0.5.1-py_0"
    }, 
    {
      "name": "partd", 
      "version": "1.0.0-py_0"
    }, 
    {
      "name": "patchelf", 
      "version": "0.9-he6710b0_3"
    }, 
    {
      "name": "path.py", 
      "version": "11.5.0-py27_0"
    }, 
    {
      "name": "pathlib2", 
      "version": "2.3.5-py27_0"
    }, 
    {
      "name": "patsy", 
      "version": "0.5.1-py27_0"
    }, 
    {
      "name": "pcre", 
      "version": "8.43-he6710b0_0"
    }, 
    {
      "name": "pep8", 
      "version": "1.7.1-py27_0"
    }, 
    {
      "name": "pexpect", 
      "version": "4.7.0-py27_0"
    }, 
    {
      "name": "pickleshare", 
      "version": "0.7.5-py27_0"
    }, 
    {
      "name": "pillow", 
      "version": "6.2.0-py27h34e0f95_0"
    }, 
    {
      "name": "pip", 
      "version": "19.2.3-py27_0"
    }, 
    {
      "name": "pixman", 
      "version": "0.38.0-h7b6447c_0"
    }, 
    {
      "name": "pkginfo", 
      "version": "1.5.0.1-py27_0"
    }, 
    {
      "name": "pluggy", 
      "version": "0.13.0-py27_0"
    }, 
    {
      "name": "ply", 
      "version": "3.11-py27_0"
    }, 
    {
      "name": "prometheus_client", 
      "version": "0.7.1-py_0"
    }, 
    {
      "name": "prompt_toolkit", 
      "version": "1.0.15-py27_0"
    }, 
    {
      "name": "psutil", 
      "version": "5.6.3-py27h7b6447c_0"
    }, 
    {
      "name": "ptyprocess", 
      "version": "0.6.0-py27_0"
    }, 
    {
      "name": "py", 
      "version": "1.8.0-py27_0"
    }, 
    {
      "name": "py-lief", 
      "version": "0.9.0-py27h7725739_2"
    }, 
    {
      "name": "pycairo", 
      "version": "1.18.1-py27h2a1e443_0"
    }, 
    {
      "name": "pycodestyle", 
      "version": "2.5.0-py27_0"
    }, 
    {
      "name": "pycosat", 
      "version": "0.6.3-py27h14c3975_0"
    }, 
    {
      "name": "pycparser", 
      "version": "2.19-py27_0"
    }, 
    {
      "name": "pycrypto", 
      "version": "2.6.1-py27h14c3975_9"
    }, 
    {
      "name": "pycurl", 
      "version": "7.43.0.3-py27h1ba5d50_0"
    }, 
    {
      "name": "pyflakes", 
      "version": "2.1.1-py27_0"
    }, 
    {
      "name": "pygments", 
      "version": "2.4.2-py_0"
    }, 
    {
      "name": "pylint", 
      "version": "1.9.2-py27_0"
    }, 
    {
      "name": "pyodbc", 
      "version": "4.0.27-py27he6710b0_0"
    }, 
    {
      "name": "pyopenssl", 
      "version": "19.0.0-py27_0"
    }, 
    {
      "name": "pyparsing", 
      "version": "2.4.2-py_0"
    }, 
    {
      "name": "pyqt", 
      "version": "5.9.2-py27h05f1152_2"
    }, 
    {
      "name": "pyrsistent", 
      "version": "0.15.4-py27h7b6447c_0"
    }, 
    {
      "name": "pysocks", 
      "version": "1.7.1-py27_0"
    }, 
    {
      "name": "pytables", 
      "version": "3.5.2-py27h71ec239_1"
    }, 
    {
      "name": "pytest", 
      "version": "4.6.2-py27_0"
    }, 
    {
      "name": "python", 
      "version": "2.7.16-h9bab390_7"
    }, 
    {
      "name": "python-dateutil", 
      "version": "2.8.0-py27_0"
    }, 
    {
      "name": "python-libarchive-c", 
      "version": "2.8-py27_13"
    }, 
    {
      "name": "pytz", 
      "version": "2019.3-py_0"
    }, 
    {
      "name": "pywavelets", 
      "version": "1.0.3-py27hdd07704_1"
    }, 
    {
      "name": "pyyaml", 
      "version": "5.1.2-py27h7b6447c_0"
    }, 
    {
      "name": "pyzmq", 
      "version": "18.1.0-py27he6710b0_0"
    }, 
    {
      "name": "qt", 
      "version": "5.9.7-h5867ecd_1"
    }, 
    {
      "name": "qtawesome", 
      "version": "0.6.0-py_0"
    }, 
    {
      "name": "qtconsole", 
      "version": "4.5.5-py_0"
    }, 
    {
      "name": "qtpy", 
      "version": "1.9.0-py_0"
    }, 
    {
      "name": "readline", 
      "version": "7.0-h7b6447c_5"
    }, 
    {
      "name": "requests", 
      "version": "2.22.0-py27_0"
    }, 
    {
      "name": "ripgrep", 
      "version": "0.10.0-hc07d326_0"
    }, 
    {
      "name": "rope", 
      "version": "0.14.0-py_0"
    }, 
    {
      "name": "ruamel_yaml", 
      "version": "0.15.46-py27h14c3975_0"
    }, 
    {
      "name": "scandir", 
      "version": "1.10.0-py27h7b6447c_0"
    }, 
    {
      "name": "scikit-image", 
      "version": "0.14.2-py27he6710b0_0"
    }, 
    {
      "name": "scikit-learn", 
      "version": "0.20.3-py27hd81dba3_0"
    }, 
    {
      "name": "scipy", 
      "version": "1.2.1-py27h7c811a0_0"
    }, 
    {
      "name": "seaborn", 
      "version": "0.9.0-py27_0"
    }, 
    {
      "name": "send2trash", 
      "version": "1.5.0-py27_0"
    }, 
    {
      "name": "setuptools", 
      "version": "41.4.0-py27_0"
    }, 
    {
      "name": "simplegeneric", 
      "version": "0.8.1-py27_2"
    }, 
    {
      "name": "singledispatch", 
      "version": "3.4.0.3-py27_0"
    }, 
    {
      "name": "sip", 
      "version": "4.19.8-py27hf484d3e_0"
    }, 
    {
      "name": "six", 
      "version": "1.12.0-py27_0"
    }, 
    {
      "name": "snappy", 
      "version": "1.1.7-hbae5bb6_3"
    }, 
    {
      "name": "snowballstemmer", 
      "version": "2.0.0-py_0"
    }, 
    {
      "name": "sortedcollections", 
      "version": "1.1.2-py27_0"
    }, 
    {
      "name": "sortedcontainers", 
      "version": "2.1.0-py27_0"
    }, 
    {
      "name": "soupsieve", 
      "version": "1.9.3-py27_0"
    }, 
    {
      "name": "sphinx", 
      "version": "1.8.5-py27_0"
    }, 
    {
      "name": "sphinxcontrib", 
      "version": "1.0-py27_1"
    }, 
    {
      "name": "sphinxcontrib-websupport", 
      "version": "1.1.2-py_0"
    }, 
    {
      "name": "spyder", 
      "version": "3.3.6-py27_0"
    }, 
    {
      "name": "spyder-kernels", 
      "version": "0.5.2-py27_0"
    }, 
    {
      "name": "sqlalchemy", 
      "version": "1.3.9-py27h7b6447c_0"
    }, 
    {
      "name": "sqlite", 
      "version": "3.30.0-h7b6447c_0"
    }, 
    {
      "name": "ssl_match_hostname", 
      "version": "3.7.0.1-py27_0"
    }, 
    {
      "name": "statsmodels", 
      "version": "0.10.1-py27hdd07704_0"
    }, 
    {
      "name": "subprocess32", 
      "version": "3.5.4-py27h7b6447c_0"
    }, 
    {
      "name": "sympy", 
      "version": "1.4-py27_0"
    }, 
    {
      "name": "tbb", 
      "version": "2019.4-hfd86e86_0"
    }, 
    {
      "name": "tblib", 
      "version": "1.4.0-py_0"
    }, 
    {
      "name": "terminado", 
      "version": "0.8.2-py27_0"
    }, 
    {
      "name": "testpath", 
      "version": "0.4.2-py27_0"
    }, 
    {
      "name": "tk", 
      "version": "8.6.8-hbc83047_0"
    }, 
    {
      "name": "toolz", 
      "version": "0.10.0-py_0"
    }, 
    {
      "name": "tornado", 
      "version": "5.1.1-py27h7b6447c_0"
    }, 
    {
      "name": "tqdm", 
      "version": "4.36.1-py_0"
    }, 
    {
      "name": "traceback2", 
      "version": "1.4.0-py27_0"
    }, 
    {
      "name": "traitlets", 
      "version": "4.3.3-py27_0"
    }, 
    {
      "name": "typing", 
      "version": "3.7.4.1-py27_0"
    }, 
    {
      "name": "unicodecsv", 
      "version": "0.14.1-py27_0"
    }, 
    {
      "name": "unittest2", 
      "version": "1.1.0-py27_0"
    }, 
    {
      "name": "unixodbc", 
      "version": "2.3.7-h14c3975_0"
    }, 
    {
      "name": "urllib3", 
      "version": "1.24.2-py27_0"
    }, 
    {
      "name": "wcwidth", 
      "version": "0.1.7-py27_0"
    }, 
    {
      "name": "webencodings", 
      "version": "0.5.1-py27_1"
    }, 
    {
      "name": "werkzeug", 
      "version": "0.16.0-py_0"
    }, 
    {
      "name": "wheel", 
      "version": "0.33.6-py27_0"
    }, 
    {
      "name": "widgetsnbextension", 
      "version": "3.5.1-py27_0"
    }, 
    {
      "name": "wrapt", 
      "version": "1.11.2-py27h7b6447c_0"
    }, 
    {
      "name": "wurlitzer", 
      "version": "1.0.3-py27_0"
    }, 
    {
      "name": "xlrd", 
      "version": "1.2.0-py27_0"
    }, 
    {
      "name": "xlsxwriter", 
      "version": "1.2.1-py_0"
    }, 
    {
      "name": "xlwt", 
      "version": "1.3.0-py27_0"
    }, 
    {
      "name": "xz", 
      "version": "5.2.4-h14c3975_4"
    }, 
    {
      "name": "yaml", 
      "version": "0.1.7-had09818_2"
    }, 
    {
      "name": "zeromq", 
      "version": "4.3.1-he6710b0_3"
    }, 
    {
      "name": "zict", 
      "version": "1.0.0-py_0"
    }, 
    {
      "name": "zipp", 
      "version": "0.6.0-py_0"
    }, 
    {
      "name": "zlib", 
      "version": "1.2.11-h7b6447c_3"
    }, 
    {
      "name": "zstd", 
      "version": "1.3.7-h0b5b093_0"
    }
  ], 
  "provides": [
    "spark-plugin"
  ], 
  "schema_version": 1, 
  "scripts": {
    "defines": "conda_env.sh"
  }, 
  "setActiveSymlink": true, 
  "users": {}, 
  "version": "2019.10"
}

conda_path是指使用官方下载包安装以后的地址

version是下载的版本

import os
import json
import re
conda_path = "/root/anaconda3/pkgs/"
#conda_path = "/opt/cloudera/parcels/Anaconda-2019.10/pkgs/"
version = "2020.07"

with open("sample.json") as f:
    sample = json.load(f)
    sample['components'][0]['name'] = "Anaconda3"
    sample['components'][0]['pkg_version'] = version
    sample['components'][0]['version'] = version
    sample['name'] = "Anaconda3"
    sample['extraVersionInfo']['baseVersion'] = version
    sample['extraVersionInfo']['fullVersion'] = version + "-el7"
    sample['version'] = version
    sample['packages'] = []
    package_list = os.listdir(conda_path)
    for item in sorted(package_list):
        tmpdict = {}
        if os.path.isdir(conda_path+item) and ('-' in item):
            result = re.search("(.*?)(-)(\d+.*)", item)
            tmpdict['name'] = result.group(1)
            tmpdict['version'] = result.group(3)
            sample['packages'].append(tmpdict)
    with open("parcel.json", "w") as resultfile:
        json.dump(sample, resultfile, indent=2, sort_keys=True)

生成的parcel.json文件如下

{
  "components": [
    {
      "name": "Anaconda3", 
      "pkg_version": "2020.07", 
      "version": "2020.07"
    }
  ], 
  "extraVersionInfo": {
    "baseVersion": "2020.07", 
    "fullVersion": "2020.07-el7", 
    "patchCount": "p0"
  }, 
  "groups": [], 
  "name": "Anaconda3", 
  "packages": [
    {
      "name": "_ipyw_jlab_nb_ext_conf", 
      "version": "0.1.0-py38_0"
    }, 
    {
      "name": "_ipyw_jlab_nb_ext_conf", 
      "version": "0.1.0-py38_0gb600ij_"
    }, 
    {
      "name": "_libgcc_mutex", 
      "version": "0.1-main"
    }, 
    {
      "name": "_libgcc_mutex", 
      "version": "0.1-maintdxjk7sg"
    }, 
    {
      "name": "alabaster", 
      "version": "0.7.12-py_0"
    }, 
    {
      "name": "alabaster", 
      "version": "0.7.12-py_0v6_vbf1i"
    }, 
    {
      "name": "anaconda", 
      "version": "2020.07-py38_0"
    }, 
    {
      "name": "anaconda-client", 
      "version": "1.7.2-py38_0"
    }, 
    {
      "name": "anaconda-navigator", 
      "version": "1.9.12-py38_0"
    }, 
    {
      "name": "anaconda-project", 
      "version": "0.8.4-py_0"
    }, 
    {
      "name": "anaconda-project", 
      "version": "0.8.4-py_0_3d7v2sr"
    }, 
    {
      "name": "argh", 
      "version": "0.26.2-py38_0"
    }, 
    {
      "name": "asn1crypto", 
      "version": "1.3.0-py38_0"
    }, 
    {
      "name": "asn1crypto", 
      "version": "1.3.0-py38_0xvvk2n17"
    }, 
    {
      "name": "astroid", 
      "version": "2.4.2-py38_0"
    }, 
    {
      "name": "astroid", 
      "version": "2.4.2-py38_0jmfq4qfx"
    }, 
    {
      "name": "astropy", 
      "version": "4.0.1.post1-py38h7b6447c_1"
    }, 
    {
      "name": "astropy", 
      "version": "4.0.1.post1-py38h7b6447c_1bkfxtpf_"
    }, 
    {
      "name": "atomicwrites", 
      "version": "1.4.0-py_0"
    }, 
    {
      "name": "attrs", 
      "version": "19.3.0-py_0"
    }, 
    {
      "name": "attrs", 
      "version": "19.3.0-py_0_otbggg2"
    }, 
    {
      "name": "attrs", 
      "version": "19.3.0-py_0o_p8vzbk"
    }, 
    {
      "name": "autopep8", 
      "version": "1.5.3-py_0"
    }, 
    {
      "name": "autopep8", 
      "version": "1.5.3-py_0p2c85chp"
    }, 
    {
      "name": "babel", 
      "version": "2.8.0-py_0"
    }, 
    {
      "name": "babel", 
      "version": "2.8.0-py_083x7cd0o"
    }, 
    {
      "name": "babel", 
      "version": "2.8.0-py_0gmdtpa0h"
    }, 
    {
      "name": "backcall", 
      "version": "0.2.0-py_0"
    }, 
    {
      "name": "backcall", 
      "version": "0.2.0-py_01e3jm9s6"
    }, 
    {
      "name": "backports", 
      "version": "1.0-py_2"
    }, 
    {
      "name": "backports.functools_lru_cache", 
      "version": "1.6.1-py_0"
    }, 
    {
      "name": "backports.functools_lru_cache", 
      "version": "1.6.1-py_00_sn6tch"
    }, 
    {
      "name": "backports.shutil_get_terminal_size", 
      "version": "1.0.0-py38_2"
    }, 
    {
      "name": "backports.shutil_get_terminal_size", 
      "version": "1.0.0-py38_2762n6c8v"
    }, 
    {
      "name": "backports.tempfile", 
      "version": "1.0-py_1"
    }, 
    {
      "name": "backports.tempfile", 
      "version": "1.0-py_1t72pjpjc"
    }, 
    {
      "name": "backports.weakref", 
      "version": "1.0.post1-py_1"
    }, 
    {
      "name": "backports.weakref", 
      "version": "1.0.post1-py_127bh4ded"
    }, 
    {
      "name": "beautifulsoup4", 
      "version": "4.9.1-py38_0"
    }, 
    {
      "name": "beautifulsoup4", 
      "version": "4.9.1-py38_0ecqvweqq"
    }, 
    {
      "name": "bitarray", 
      "version": "1.4.0-py38h7b6447c_0"
    }, 
    {
      "name": "bitarray", 
      "version": "1.4.0-py38h7b6447c_035qbte45"
    }, 
    {
      "name": "bitarray", 
      "version": "1.4.0-py38h7b6447c_0b7gxwozp"
    }, 
    {
      "name": "bkcharts", 
      "version": "0.2-py38_0"
    }, 
    {
      "name": "blas", 
      "version": "1.0-mkl"
    }, 
    {
      "name": "blas", 
      "version": "1.0-mklcgux7a8h"
    }, 
    {
      "name": "bleach", 
      "version": "3.1.5-py_0"
    }, 
    {
      "name": "blosc", 
      "version": "1.19.0-hd408876_0"
    }, 
    {
      "name": "bokeh", 
      "version": "2.1.1-py38_0"
    }, 
    {
      "name": "bokeh", 
      "version": "2.1.1-py38_0n_srh5gw"
    }, 
    {
      "name": "boto", 
      "version": "2.49.0-py38_0"
    }, 
    {
      "name": "bottleneck", 
      "version": "1.3.2-py38heb32a55_1"
    }, 
    {
      "name": "brotlipy", 
      "version": "0.7.0-py38h7b6447c_1000"
    }, 
    {
      "name": "bzip2", 
      "version": "1.0.8-h7b6447c_0"
    }, 
    {
      "name": "bzip2", 
      "version": "1.0.8-h7b6447c_0cryflyu2"
    }, 
    {
      "name": "ca-certificates", 
      "version": "2020.6.24-0"
    }, 
    {
      "name": "ca-certificates", 
      "version": "2020.6.24-04ovdb2di"
    }, 
    {
      "name": "ca-certificates", 
      "version": "2020.6.24-0m236bubr"
    }, 
    {
      "name": "cairo", 
      "version": "1.14.12-h8948797_3"
    }, 
    {
      "name": "cairo", 
      "version": "1.14.12-h8948797_33rssk5jr"
    }, 
    {
      "name": "certifi", 
      "version": "2020.6.20-py38_0"
    }, 
    {
      "name": "cffi", 
      "version": "1.14.0-py38he30daa8_1"
    }, 
    {
      "name": "chardet", 
      "version": "3.0.4-py38_1003"
    }, 
    {
      "name": "chardet", 
      "version": "3.0.4-py38_100328r6t396"
    }, 
    {
      "name": "chardet", 
      "version": "3.0.4-py38_1003ycjjel8e"
    }, 
    {
      "name": "click", 
      "version": "7.1.2-py_0"
    }, 
    {
      "name": "cloudpickle", 
      "version": "1.5.0-py_0"
    }, 
    {
      "name": "clyent", 
      "version": "1.2.2-py38_1"
    }, 
    {
      "name": "clyent", 
      "version": "1.2.2-py38_1knw06ecv"
    }, 
    {
      "name": "colorama", 
      "version": "0.4.3-py_0"
    }, 
    {
      "name": "colorama", 
      "version": "0.4.3-py_0cxf05ei1"
    }, 
    {
      "name": "colorama", 
      "version": "0.4.3-py_0qebr9avh"
    }, 
    {
      "name": "conda", 
      "version": "4.8.3-py38_0"
    }, 
    {
      "name": "conda-build", 
      "version": "3.18.11-py38_0"
    }, 
    {
      "name": "conda-build", 
      "version": "3.18.11-py38_0ro4lf93f"
    }, 
    {
      "name": "conda-env", 
      "version": "2.6.0-1"
    }, 
    {
      "name": "conda-env", 
      "version": "2.6.0-1b7_9cxgm"
    }, 
    {
      "name": "conda-package-handling", 
      "version": "1.6.1-py38h7b6447c_0"
    }, 
    {
      "name": "conda-verify", 
      "version": "3.4.2-py_1"
    }, 
    {
      "name": "conda-verify", 
      "version": "3.4.2-py_168vh4_yw"
    }, 
    {
      "name": "conda-verify", 
      "version": "3.4.2-py_1zvlava34"
    }, 
    {
      "name": "contextlib2", 
      "version": "0.6.0.post1-py_0"
    }, 
    {
      "name": "contextlib2", 
      "version": "0.6.0.post1-py_0vlfjsge_"
    }, 
    {
      "name": "cryptography", 
      "version": "2.9.2-py38h1ba5d50_0"
    }, 
    {
      "name": "cryptography", 
      "version": "2.9.2-py38h1ba5d50_0tbn4m6fa"
    }, 
    {
      "name": "curl", 
      "version": "7.71.1-hbc83047_1"
    }, 
    {
      "name": "curl", 
      "version": "7.71.1-hbc83047_1ifj2nezs"
    }, 
    {
      "name": "cycler", 
      "version": "0.10.0-py38_0"
    }, 
    {
      "name": "cython", 
      "version": "0.29.21-py38he6710b0_0"
    }, 
    {
      "name": "cytoolz", 
      "version": "0.10.1-py38h7b6447c_0"
    }, 
    {
      "name": "cytoolz", 
      "version": "0.10.1-py38h7b6447c_0217tcsy1"
    }, 
    {
      "name": "dask", 
      "version": "2.20.0-py_0"
    }, 
    {
      "name": "dask-core", 
      "version": "2.20.0-py_0"
    }, 
    {
      "name": "dask-core", 
      "version": "2.20.0-py_0n0bh1dae"
    }, 
    {
      "name": "dbus", 
      "version": "1.13.16-hb2f20db_0"
    }, 
    {
      "name": "decorator", 
      "version": "4.4.2-py_0"
    }, 
    {
      "name": "decorator", 
      "version": "4.4.2-py_0ouf2wwb6"
    }, 
    {
      "name": "defusedxml", 
      "version": "0.6.0-py_0"
    }, 
    {
      "name": "diff-match-patch", 
      "version": "20200713-py_0"
    }, 
    {
      "name": "diff-match-patch", 
      "version": "20200713-py_0f430cxbo"
    }, 
    {
      "name": "diff-match-patch", 
      "version": "20200713-py_0jnldjppd"
    }, 
    {
      "name": "distributed", 
      "version": "2.20.0-py38_0"
    }, 
    {
      "name": "distributed", 
      "version": "2.20.0-py38_0u9uuqvgk"
    }, 
    {
      "name": "docutils", 
      "version": "0.16-py38_1"
    }, 
    {
      "name": "docutils", 
      "version": "0.16-py38_1ypbzlhse"
    }, 
    {
      "name": "entrypoints", 
      "version": "0.3-py38_0"
    }, 
    {
      "name": "et_xmlfile", 
      "version": "1.0.1-py_1001"
    }, 
    {
      "name": "et_xmlfile", 
      "version": "1.0.1-py_10017jjpi6h7"
    }, 
    {
      "name": "et_xmlfile", 
      "version": "1.0.1-py_1001wjgx4t5m"
    }, 
    {
      "name": "expat", 
      "version": "2.2.9-he6710b0_2"
    }, 
    {
      "name": "expat", 
      "version": "2.2.9-he6710b0_20xybrmfm"
    }, 
    {
      "name": "expat", 
      "version": "2.2.9-he6710b0_2tigc4r0g"
    }, 
    {
      "name": "fastcache", 
      "version": "1.1.0-py38h7b6447c_0"
    }, 
    {
      "name": "fastcache", 
      "version": "1.1.0-py38h7b6447c_0ovqgfos0"
    }, 
    {
      "name": "filelock", 
      "version": "3.0.12-py_0"
    }, 
    {
      "name": "filelock", 
      "version": "3.0.12-py_0f1b9kab8"
    }, 
    {
      "name": "flake8", 
      "version": "3.8.3-py_0"
    }, 
    {
      "name": "flask", 
      "version": "1.1.2-py_0"
    }, 
    {
      "name": "flask", 
      "version": "1.1.2-py_0doitd4fz"
    }, 
    {
      "name": "fontconfig", 
      "version": "2.13.0-h9420a91_0"
    }, 
    {
      "name": "fontconfig", 
      "version": "2.13.0-h9420a91_0ccglnmge"
    }, 
    {
      "name": "freetype", 
      "version": "2.10.2-h5ab3b9f_0"
    }, 
    {
      "name": "freetype", 
      "version": "2.10.2-h5ab3b9f_00h9x3gza"
    }, 
    {
      "name": "freetype", 
      "version": "2.10.2-h5ab3b9f_0t5eq280p"
    }, 
    {
      "name": "fribidi", 
      "version": "1.0.9-h7b6447c_0"
    }, 
    {
      "name": "fsspec", 
      "version": "0.7.4-py_0"
    }, 
    {
      "name": "future", 
      "version": "0.18.2-py38_1"
    }, 
    {
      "name": "future", 
      "version": "0.18.2-py38_17dtg8msm"
    }, 
    {
      "name": "get_terminal_size", 
      "version": "1.0.0-haa9412d_0"
    }, 
    {
      "name": "get_terminal_size", 
      "version": "1.0.0-haa9412d_0x5w_6ogo"
    }, 
    {
      "name": "gevent", 
      "version": "20.6.2-py38h7b6447c_0"
    }, 
    {
      "name": "glib", 
      "version": "2.65.0-h3eb4bd4_0"
    }, 
    {
      "name": "glob2", 
      "version": "0.7-py_0"
    }, 
    {
      "name": "gmp", 
      "version": "6.1.2-h6c8ec71_1"
    }, 
    {
      "name": "gmp", 
      "version": "6.1.2-h6c8ec71_15uh2j8kh"
    }, 
    {
      "name": "gmp", 
      "version": "6.1.2-h6c8ec71_1xonxny1v"
    }, 
    {
      "name": "gmpy2", 
      "version": "2.0.8-py38hd5f6e3b_3"
    }, 
    {
      "name": "graphite2", 
      "version": "1.3.14-h23475e2_0"
    }, 
    {
      "name": "graphite2", 
      "version": "1.3.14-h23475e2_0hq296mor"
    }, 
    {
      "name": "greenlet", 
      "version": "0.4.16-py38h7b6447c_0"
    }, 
    {
      "name": "gst-plugins-base", 
      "version": "1.14.0-hbbd80ab_1"
    }, 
    {
      "name": "gst-plugins-base", 
      "version": "1.14.0-hbbd80ab_1va6apag3"
    }, 
    {
      "name": "gstreamer", 
      "version": "1.14.0-hb31296c_0"
    }, 
    {
      "name": "gstreamer", 
      "version": "1.14.0-hb31296c_0fv8c7q0a"
    }, 
    {
      "name": "gstreamer", 
      "version": "1.14.0-hb31296c_0mbdpxvi7"
    }, 
    {
      "name": "h5py", 
      "version": "2.10.0-py38h7918eee_0"
    }, 
    {
      "name": "harfbuzz", 
      "version": "2.4.0-hca77d97_1"
    }, 
    {
      "name": "hdf5", 
      "version": "1.10.4-hb1b8bf9_0"
    }, 
    {
      "name": "hdf5", 
      "version": "1.10.4-hb1b8bf9_074g9y5cs"
    }, 
    {
      "name": "heapdict", 
      "version": "1.0.1-py_0"
    }, 
    {
      "name": "html5lib", 
      "version": "1.1-py_0"
    }, 
    {
      "name": "icu", 
      "version": "58.2-he6710b0_3"
    }, 
    {
      "name": "icu", 
      "version": "58.2-he6710b0_3frvwqqka"
    }, 
    {
      "name": "idna", 
      "version": "2.10-py_0"
    }, 
    {
      "name": "idna", 
      "version": "2.10-py_00phmuyik"
    }, 
    {
      "name": "idna", 
      "version": "2.10-py_0iqbc38xu"
    }, 
    {
      "name": "imageio", 
      "version": "2.9.0-py_0"
    }, 
    {
      "name": "imagesize", 
      "version": "1.2.0-py_0"
    }, 
    {
      "name": "imagesize", 
      "version": "1.2.0-py_0fjdo57ac"
    }, 
    {
      "name": "imagesize", 
      "version": "1.2.0-py_0l0eh3bsp"
    }, 
    {
      "name": "importlib-metadata", 
      "version": "1.7.0-py38_0"
    }, 
    {
      "name": "importlib-metadata", 
      "version": "1.7.0-py38_0s5t6osd8"
    }, 
    {
      "name": "importlib_metadata", 
      "version": "1.7.0-0"
    }, 
    {
      "name": "importlib_metadata", 
      "version": "1.7.0-0g_26g8yv"
    }, 
    {
      "name": "intel-openmp", 
      "version": "2020.1-217"
    }, 
    {
      "name": "intel-openmp", 
      "version": "2020.1-217e_mztffd"
    }, 
    {
      "name": "intervaltree", 
      "version": "3.0.2-py_1"
    }, 
    {
      "name": "intervaltree", 
      "version": "3.0.2-py_1_hj7vllv"
    }, 
    {
      "name": "ipykernel", 
      "version": "5.3.2-py38h5ca1d4c_0"
    }, 
    {
      "name": "ipykernel", 
      "version": "5.3.2-py38h5ca1d4c_0slyiyrcf"
    }, 
    {
      "name": "ipykernel", 
      "version": "5.3.2-py38h5ca1d4c_0v9060eaz"
    }, 
    {
      "name": "ipython", 
      "version": "7.16.1-py38h5ca1d4c_0"
    }, 
    {
      "name": "ipython_genutils", 
      "version": "0.2.0-py38_0"
    }, 
    {
      "name": "ipywidgets", 
      "version": "7.5.1-py_0"
    }, 
    {
      "name": "isort", 
      "version": "4.3.21-py38_0"
    }, 
    {
      "name": "isort", 
      "version": "4.3.21-py38_0i6v_ixfa"
    }, 
    {
      "name": "itsdangerous", 
      "version": "1.1.0-py_0"
    }, 
    {
      "name": "itsdangerous", 
      "version": "1.1.0-py_05l2v3qd4"
    }, 
    {
      "name": "jbig", 
      "version": "2.1-hdba287a_0"
    }, 
    {
      "name": "jbig", 
      "version": "2.1-hdba287a_06kqn7g8b"
    }, 
    {
      "name": "jbig", 
      "version": "2.1-hdba287a_09pw34n4r"
    }, 
    {
      "name": "jdcal", 
      "version": "1.4.1-py_0"
    }, 
    {
      "name": "jdcal", 
      "version": "1.4.1-py_0qg7btk2h"
    }, 
    {
      "name": "jedi", 
      "version": "0.17.1-py38_0"
    }, 
    {
      "name": "jeepney", 
      "version": "0.4.3-py_0"
    }, 
    {
      "name": "jinja2", 
      "version": "2.11.2-py_0"
    }, 
    {
      "name": "jinja2", 
      "version": "2.11.2-py_0o04knpml"
    }, 
    {
      "name": "joblib", 
      "version": "0.16.0-py_0"
    }, 
    {
      "name": "joblib", 
      "version": "0.16.0-py_0fgwe3xf0"
    }, 
    {
      "name": "jpeg", 
      "version": "9b-h024ee3a_2"
    }, 
    {
      "name": "jpeg", 
      "version": "9b-h024ee3a_210ezrgxo"
    }, 
    {
      "name": "jpeg", 
      "version": "9b-h024ee3a_21dtrpy4i"
    }, 
    {
      "name": "json5", 
      "version": "0.9.5-py_0"
    }, 
    {
      "name": "jsonschema", 
      "version": "3.2.0-py38_0"
    }, 
    {
      "name": "jsonschema", 
      "version": "3.2.0-py38_066jddynw"
    }, 
    {
      "name": "jupyter", 
      "version": "1.0.0-py38_7"
    }, 
    {
      "name": "jupyter", 
      "version": "1.0.0-py38_7go5hlyp_"
    }, 
    {
      "name": "jupyter", 
      "version": "1.0.0-py38_7k0t3awxe"
    }, 
    {
      "name": "jupyter_client", 
      "version": "6.1.6-py_0"
    }, 
    {
      "name": "jupyter_console", 
      "version": "6.1.0-py_0"
    }, 
    {
      "name": "jupyter_console", 
      "version": "6.1.0-py_0se5479ds"
    }, 
    {
      "name": "jupyter_core", 
      "version": "4.6.3-py38_0"
    }, 
    {
      "name": "jupyterlab", 
      "version": "2.1.5-py_0"
    }, 
    {
      "name": "jupyterlab_server", 
      "version": "1.2.0-py_0"
    }, 
    {
      "name": "keyring", 
      "version": "21.2.1-py38_0"
    }, 
    {
      "name": "kiwisolver", 
      "version": "1.2.0-py38hfd86e86_0"
    }, 
    {
      "name": "krb5", 
      "version": "1.18.2-h173b8e3_0"
    }, 
    {
      "name": "lazy-object-proxy", 
      "version": "1.4.3-py38h7b6447c_0"
    }, 
    {
      "name": "lcms2", 
      "version": "2.11-h396b838_0"
    }, 
    {
      "name": "ld_impl_linux", 
      "version": "64-2.33.1-h53a641e_7"
    }, 
    {
      "name": "ld_impl_linux", 
      "version": "64-2.33.1-h53a641e_74rn07g28"
    }, 
    {
      "name": "libarchive", 
      "version": "3.4.2-h62408e4_0"
    }, 
    {
      "name": "libcurl", 
      "version": "7.71.1-h20c2e04_1"
    }, 
    {
      "name": "libedit", 
      "version": "3.1.20191231-h14c3975_1"
    }, 
    {
      "name": "libffi", 
      "version": "3.3-he6710b0_2"
    }, 
    {
      "name": "libffi", 
      "version": "3.3-he6710b0_2i15unjfu"
    }, 
    {
      "name": "libgcc-ng", 
      "version": "9.1.0-hdf63c60_0"
    }, 
    {
      "name": "libgcc-ng", 
      "version": "9.1.0-hdf63c60_056i84aug"
    }, 
    {
      "name": "libgfortran-ng", 
      "version": "7.3.0-hdf63c60_0"
    }, 
    {
      "name": "libgfortran-ng", 
      "version": "7.3.0-hdf63c60_0qzggav22"
    }, 
    {
      "name": "libgfortran-ng", 
      "version": "7.3.0-hdf63c60_0yanwpjtq"
    }, 
    {
      "name": "liblief", 
      "version": "0.10.1-he6710b0_0"
    }, 
    {
      "name": "liblief", 
      "version": "0.10.1-he6710b0_004fpp6a1"
    }, 
    {
      "name": "liblief", 
      "version": "0.10.1-he6710b0_0396k8vsx"
    }, 
    {
      "name": "libllvm9", 
      "version": "9.0.1-h4a3c616_1"
    }, 
    {
      "name": "libllvm9", 
      "version": "9.0.1-h4a3c616_10vrrmx33"
    }, 
    {
      "name": "libpng", 
      "version": "1.6.37-hbc83047_0"
    }, 
    {
      "name": "libsodium", 
      "version": "1.0.18-h7b6447c_0"
    }, 
    {
      "name": "libsodium", 
      "version": "1.0.18-h7b6447c_0603oagww"
    }, 
    {
      "name": "libspatialindex", 
      "version": "1.9.3-he6710b0_0"
    }, 
    {
      "name": "libspatialindex", 
      "version": "1.9.3-he6710b0_01vgxhapv"
    }, 
    {
      "name": "libssh2", 
      "version": "1.9.0-h1ba5d50_1"
    }, 
    {
      "name": "libssh2", 
      "version": "1.9.0-h1ba5d50_12godqnfw"
    }, 
    {
      "name": "libstdcxx-ng", 
      "version": "9.1.0-hdf63c60_0"
    }, 
    {
      "name": "libtiff", 
      "version": "4.1.0-h2733197_1"
    }, 
    {
      "name": "libtool", 
      "version": "2.4.6-h7b6447c_5"
    }, 
    {
      "name": "libuuid", 
      "version": "1.0.3-h1bed415_2"
    }, 
    {
      "name": "libuuid", 
      "version": "1.0.3-h1bed415_23spwv2ag"
    }, 
    {
      "name": "libuuid", 
      "version": "1.0.3-h1bed415_2eo1j33lb"
    }, 
    {
      "name": "libxcb", 
      "version": "1.14-h7b6447c_0"
    }, 
    {
      "name": "libxcb", 
      "version": "1.14-h7b6447c_0_9_9izga"
    }, 
    {
      "name": "libxml2", 
      "version": "2.9.10-he19cac6_1"
    }, 
    {
      "name": "libxslt", 
      "version": "1.1.34-hc22bd24_0"
    }, 
    {
      "name": "libxslt", 
      "version": "1.1.34-hc22bd24_09o6qwc6m"
    }, 
    {
      "name": "libxslt", 
      "version": "1.1.34-hc22bd24_0my90fdca"
    }, 
    {
      "name": "llvmlite", 
      "version": "0.33.0-py38hc6ec683_1"
    }, 
    {
      "name": "locket", 
      "version": "0.2.0-py38_1"
    }, 
    {
      "name": "lxml", 
      "version": "4.5.2-py38hefd8a0e_0"
    }, 
    {
      "name": "lxml", 
      "version": "4.5.2-py38hefd8a0e_07qk4uzo2"
    }, 
    {
      "name": "lz4-c", 
      "version": "1.9.2-he6710b0_0"
    }, 
    {
      "name": "lz4-c", 
      "version": "1.9.2-he6710b0_06sx3fxaj"
    }, 
    {
      "name": "lzo", 
      "version": "2.10-h7b6447c_2"
    }, 
    {
      "name": "markupsafe", 
      "version": "1.1.1-py38h7b6447c_0"
    }, 
    {
      "name": "matplotlib", 
      "version": "3.2.2-0"
    }, 
    {
      "name": "matplotlib-base", 
      "version": "3.2.2-py38hef1b27d_0"
    }, 
    {
      "name": "mccabe", 
      "version": "0.6.1-py38_1"
    }, 
    {
      "name": "mistune", 
      "version": "0.8.4-py38h7b6447c_1000"
    }, 
    {
      "name": "mistune", 
      "version": "0.8.4-py38h7b6447c_100067gc0_0j"
    }, 
    {
      "name": "mistune", 
      "version": "0.8.4-py38h7b6447c_1000767x170z"
    }, 
    {
      "name": "mkl", 
      "version": "2020.1-217"
    }, 
    {
      "name": "mkl-service", 
      "version": "2.3.0-py38he904b0f_0"
    }, 
    {
      "name": "mkl_fft", 
      "version": "1.1.0-py38h23d657b_0"
    }, 
    {
      "name": "mkl_random", 
      "version": "1.1.1-py38h0573a6f_0"
    }, 
    {
      "name": "mkl_random", 
      "version": "1.1.1-py38h0573a6f_08v9p4pjk"
    }, 
    {
      "name": "mkl_random", 
      "version": "1.1.1-py38h0573a6f_0lddepiwc"
    }, 
    {
      "name": "mock", 
      "version": "4.0.2-py_0"
    }, 
    {
      "name": "mock", 
      "version": "4.0.2-py_05lgs7wt0"
    }, 
    {
      "name": "mock", 
      "version": "4.0.2-py_0rqas4383"
    }, 
    {
      "name": "more-itertools", 
      "version": "8.4.0-py_0"
    }, 
    {
      "name": "more-itertools", 
      "version": "8.4.0-py_0mt0udzb0"
    }, 
    {
      "name": "more-itertools", 
      "version": "8.4.0-py_0z5wou8jk"
    }, 
    {
      "name": "mpc", 
      "version": "1.1.0-h10f8cd9_1"
    }, 
    {
      "name": "mpfr", 
      "version": "4.0.2-hb69a4c5_1"
    }, 
    {
      "name": "mpmath", 
      "version": "1.1.0-py38_0"
    }, 
    {
      "name": "mpmath", 
      "version": "1.1.0-py38_023vexu98"
    }, 
    {
      "name": "msgpack-python", 
      "version": "1.0.0-py38hfd86e86_1"
    }, 
    {
      "name": "multipledispatch", 
      "version": "0.6.0-py38_0"
    }, 
    {
      "name": "multipledispatch", 
      "version": "0.6.0-py38_0cbsi2_nm"
    }, 
    {
      "name": "multipledispatch", 
      "version": "0.6.0-py38_0wie8x783"
    }, 
    {
      "name": "navigator-updater", 
      "version": "0.2.1-py38_0"
    }, 
    {
      "name": "nbconvert", 
      "version": "5.6.1-py38_0"
    }, 
    {
      "name": "nbformat", 
      "version": "5.0.7-py_0"
    }, 
    {
      "name": "nbformat", 
      "version": "5.0.7-py_0szu3zc1s"
    }, 
    {
      "name": "ncurses", 
      "version": "6.2-he6710b0_1"
    }, 
    {
      "name": "ncurses", 
      "version": "6.2-he6710b0_141h4ljkn"
    }, 
    {
      "name": "ncurses", 
      "version": "6.2-he6710b0_16hpr3qcz"
    }, 
    {
      "name": "networkx", 
      "version": "2.4-py_1"
    }, 
    {
      "name": "networkx", 
      "version": "2.4-py_1ap2c65yn"
    }, 
    {
      "name": "nltk", 
      "version": "3.5-py_0"
    }, 
    {
      "name": "nose", 
      "version": "1.3.7-py38_2"
    }, 
    {
      "name": "notebook", 
      "version": "6.0.3-py38_0"
    }, 
    {
      "name": "notebook", 
      "version": "6.0.3-py38_0tn4uu6hf"
    }, 
    {
      "name": "numba", 
      "version": "0.50.1-py38h0573a6f_1"
    }, 
    {
      "name": "numexpr", 
      "version": "2.7.1-py38h423224d_0"
    }, 
    {
      "name": "numexpr", 
      "version": "2.7.1-py38h423224d_0_49bpg_u"
    }, 
    {
      "name": "numpy", 
      "version": "1.18.5-py38ha1c710e_0"
    }, 
    {
      "name": "numpy-base", 
      "version": "1.18.5-py38hde5b4d6_0"
    }, 
    {
      "name": "numpy-base", 
      "version": "1.18.5-py38hde5b4d6_0qnlpvflb"
    }, 
    {
      "name": "numpydoc", 
      "version": "1.1.0-py_0"
    }, 
    {
      "name": "numpydoc", 
      "version": "1.1.0-py_09_ji4jkt"
    }, 
    {
      "name": "olefile", 
      "version": "0.46-py_0"
    }, 
    {
      "name": "openpyxl", 
      "version": "3.0.4-py_0"
    }, 
    {
      "name": "openssl", 
      "version": "1.1.1g-h7b6447c_0"
    }, 
    {
      "name": "openssl", 
      "version": "1.1.1g-h7b6447c_0b1yaj4zu"
    }, 
    {
      "name": "openssl", 
      "version": "1.1.1g-h7b6447c_0twkm2rh3"
    }, 
    {
      "name": "packaging", 
      "version": "20.4-py_0"
    }, 
    {
      "name": "pandas", 
      "version": "1.0.5-py38h0573a6f_0"
    }, 
    {
      "name": "pandoc", 
      "version": "2.10-0"
    }, 
    {
      "name": "pandoc", 
      "version": "2.10-06zjtavgb"
    }, 
    {
      "name": "pandocfilters", 
      "version": "1.4.2-py38_1"
    }, 
    {
      "name": "pandocfilters", 
      "version": "1.4.2-py38_191m7stfv"
    }, 
    {
      "name": "pango", 
      "version": "1.45.3-hd140c19_0"
    }, 
    {
      "name": "parso", 
      "version": "0.7.0-py_0"
    }, 
    {
      "name": "parso", 
      "version": "0.7.0-py_0w9507cuf"
    }, 
    {
      "name": "partd", 
      "version": "1.1.0-py_0"
    }, 
    {
      "name": "patchelf", 
      "version": "0.11-he6710b0_0"
    }, 
    {
      "name": "path", 
      "version": "13.1.0-py38_0"
    }, 
    {
      "name": "path.py", 
      "version": "12.4.0-0"
    }, 
    {
      "name": "path.py", 
      "version": "12.4.0-0cqh313bf"
    }, 
    {
      "name": "pathlib2", 
      "version": "2.3.5-py38_0"
    }, 
    {
      "name": "pathlib2", 
      "version": "2.3.5-py38_0o2x79v04"
    }, 
    {
      "name": "pathtools", 
      "version": "0.1.2-py_1"
    }, 
    {
      "name": "patsy", 
      "version": "0.5.1-py38_0"
    }, 
    {
      "name": "pcre", 
      "version": "8.44-he6710b0_0"
    }, 
    {
      "name": "pep8", 
      "version": "1.7.1-py38_0"
    }, 
    {
      "name": "pexpect", 
      "version": "4.8.0-py38_0"
    }, 
    {
      "name": "pickleshare", 
      "version": "0.7.5-py38_1000"
    }, 
    {
      "name": "pillow", 
      "version": "7.2.0-py38hb39fc2d_0"
    }, 
    {
      "name": "pillow", 
      "version": "7.2.0-py38hb39fc2d_09gluh2jj"
    }, 
    {
      "name": "pip", 
      "version": "20.1.1-py38_1"
    }, 
    {
      "name": "pip", 
      "version": "20.1.1-py38_1roq5zbfj"
    }, 
    {
      "name": "pixman", 
      "version": "0.40.0-h7b6447c_0"
    }, 
    {
      "name": "pkginfo", 
      "version": "1.5.0.1-py38_0"
    }, 
    {
      "name": "pkginfo", 
      "version": "1.5.0.1-py38_08qjhqr2j"
    }, 
    {
      "name": "pluggy", 
      "version": "0.13.1-py38_0"
    }, 
    {
      "name": "ply", 
      "version": "3.11-py38_0"
    }, 
    {
      "name": "ply", 
      "version": "3.11-py38_01pbmqajg"
    }, 
    {
      "name": "ply", 
      "version": "3.11-py38_05h1tnscb"
    }, 
    {
      "name": "prometheus_client", 
      "version": "0.8.0-py_0"
    }, 
    {
      "name": "prometheus_client", 
      "version": "0.8.0-py_02ysqv8jl"
    }, 
    {
      "name": "prometheus_client", 
      "version": "0.8.0-py_0ttv_m66o"
    }, 
    {
      "name": "prompt-toolkit", 
      "version": "3.0.5-py_0"
    }, 
    {
      "name": "prompt_toolkit", 
      "version": "3.0.5-0"
    }, 
    {
      "name": "psutil", 
      "version": "5.7.0-py38h7b6447c_0"
    }, 
    {
      "name": "ptyprocess", 
      "version": "0.6.0-py38_0"
    }, 
    {
      "name": "ptyprocess", 
      "version": "0.6.0-py38_0g3o7nfr2"
    }, 
    {
      "name": "py", 
      "version": "1.9.0-py_0"
    }, 
    {
      "name": "py", 
      "version": "1.9.0-py_02qhv0hmx"
    }, 
    {
      "name": "py", 
      "version": "1.9.0-py_0j8z1qup8"
    }, 
    {
      "name": "py-lief", 
      "version": "0.10.1-py38h403a769_0"
    }, 
    {
      "name": "py-lief", 
      "version": "0.10.1-py38h403a769_047bhmtuo"
    }, 
    {
      "name": "py-lief", 
      "version": "0.10.1-py38h403a769_0_helqxpg"
    }, 
    {
      "name": "pycodestyle", 
      "version": "2.6.0-py_0"
    }, 
    {
      "name": "pycosat", 
      "version": "0.6.3-py38h7b6447c_1"
    }, 
    {
      "name": "pycosat", 
      "version": "0.6.3-py38h7b6447c_1qc9ffv9n"
    }, 
    {
      "name": "pycparser", 
      "version": "2.20-py_2"
    }, 
    {
      "name": "pycurl", 
      "version": "7.43.0.5-py38h1ba5d50_0"
    }, 
    {
      "name": "pydocstyle", 
      "version": "5.0.2-py_0"
    }, 
    {
      "name": "pyflakes", 
      "version": "2.2.0-py_0"
    }, 
    {
      "name": "pyflakes", 
      "version": "2.2.0-py_023ve0kq0"
    }, 
    {
      "name": "pyflakes", 
      "version": "2.2.0-py_02m0h_k_7"
    }, 
    {
      "name": "pygments", 
      "version": "2.6.1-py_0"
    }, 
    {
      "name": "pygments", 
      "version": "2.6.1-py_0u0v0h73l"
    }, 
    {
      "name": "pylint", 
      "version": "2.5.3-py38_0"
    }, 
    {
      "name": "pylint", 
      "version": "2.5.3-py38_05kxovsck"
    }, 
    {
      "name": "pylint", 
      "version": "2.5.3-py38_0oprgaq70"
    }, 
    {
      "name": "pyodbc", 
      "version": "4.0.30-py38he6710b0_0"
    }, 
    {
      "name": "pyopenssl", 
      "version": "19.1.0-py_1"
    }, 
    {
      "name": "pyopenssl", 
      "version": "19.1.0-py_1_hxhs9sc"
    }, 
    {
      "name": "pyparsing", 
      "version": "2.4.7-py_0"
    }, 
    {
      "name": "pyqt", 
      "version": "5.9.2-py38h05f1152_4"
    }, 
    {
      "name": "pyqt", 
      "version": "5.9.2-py38h05f1152_4lr_tk7jg"
    }, 
    {
      "name": "pyrsistent", 
      "version": "0.16.0-py38h7b6447c_0"
    }, 
    {
      "name": "pyrsistent", 
      "version": "0.16.0-py38h7b6447c_0mbmp1eel"
    }, 
    {
      "name": "pysocks", 
      "version": "1.7.1-py38_0"
    }, 
    {
      "name": "pytables", 
      "version": "3.6.1-py38h9fd0a39_0"
    }, 
    {
      "name": "pytest", 
      "version": "5.4.3-py38_0"
    }, 
    {
      "name": "pytest", 
      "version": "5.4.3-py38_0b_o8ugs5"
    }, 
    {
      "name": "pytest", 
      "version": "5.4.3-py38_0jachtpzd"
    }, 
    {
      "name": "python", 
      "version": "3.8.3-hcff3b4d_2"
    }, 
    {
      "name": "python", 
      "version": "3.8.3-hcff3b4d_2ig1ipc0p"
    }, 
    {
      "name": "python-dateutil", 
      "version": "2.8.1-py_0"
    }, 
    {
      "name": "python-dateutil", 
      "version": "2.8.1-py_0jc6zn8or"
    }, 
    {
      "name": "python-jsonrpc-server", 
      "version": "0.3.4-py_1"
    }, 
    {
      "name": "python-jsonrpc-server", 
      "version": "0.3.4-py_1a329nma3"
    }, 
    {
      "name": "python-language-server", 
      "version": "0.34.1-py38_0"
    }, 
    {
      "name": "python-libarchive-c", 
      "version": "2.9-py_0"
    }, 
    {
      "name": "pytz", 
      "version": "2020.1-py_0"
    }, 
    {
      "name": "pytz", 
      "version": "2020.1-py_060ut9xwd"
    }, 
    {
      "name": "pytz", 
      "version": "2020.1-py_0sn32_n4f"
    }, 
    {
      "name": "pywavelets", 
      "version": "1.1.1-py38h7b6447c_0"
    }, 
    {
      "name": "pyxdg", 
      "version": "0.26-py_0"
    }, 
    {
      "name": "pyxdg", 
      "version": "0.26-py_027segdo4"
    }, 
    {
      "name": "pyyaml", 
      "version": "5.3.1-py38h7b6447c_1"
    }, 
    {
      "name": "pyyaml", 
      "version": "5.3.1-py38h7b6447c_1c9b8wlq1"
    }, 
    {
      "name": "pyzmq", 
      "version": "19.0.1-py38he6710b0_1"
    }, 
    {
      "name": "qdarkstyle", 
      "version": "2.8.1-py_0"
    }, 
    {
      "name": "qdarkstyle", 
      "version": "2.8.1-py_0hwx0xm0i"
    }, 
    {
      "name": "qt", 
      "version": "5.9.7-h5867ecd_1"
    }, 
    {
      "name": "qt", 
      "version": "5.9.7-h5867ecd_1xvf94_j2"
    }, 
    {
      "name": "qtawesome", 
      "version": "0.7.2-py_0"
    }, 
    {
      "name": "qtconsole", 
      "version": "4.7.5-py_0"
    }, 
    {
      "name": "qtconsole", 
      "version": "4.7.5-py_0u9ppz8te"
    }, 
    {
      "name": "qtpy", 
      "version": "1.9.0-py_0"
    }, 
    {
      "name": "qtpy", 
      "version": "1.9.0-py_093j5t321"
    }, 
    {
      "name": "readline", 
      "version": "8.0-h7b6447c_0"
    }, 
    {
      "name": "readline", 
      "version": "8.0-h7b6447c_0byhqensf"
    }, 
    {
      "name": "readline", 
      "version": "8.0-h7b6447c_0mao44u5b"
    }, 
    {
      "name": "regex", 
      "version": "2020.6.8-py38h7b6447c_0"
    }, 
    {
      "name": "requests", 
      "version": "2.24.0-py_0"
    }, 
    {
      "name": "requests", 
      "version": "2.24.0-py_01ggax9qq"
    }, 
    {
      "name": "ripgrep", 
      "version": "11.0.2-he32d670_0"
    }, 
    {
      "name": "rope", 
      "version": "0.17.0-py_0"
    }, 
    {
      "name": "rope", 
      "version": "0.17.0-py_0cfklva58"
    }, 
    {
      "name": "rtree", 
      "version": "0.9.4-py38_1"
    }, 
    {
      "name": "rtree", 
      "version": "0.9.4-py38_1qxx8v5_p"
    }, 
    {
      "name": "rtree", 
      "version": "0.9.4-py38_1zph8ql9j"
    }, 
    {
      "name": "ruamel_yaml", 
      "version": "0.15.87-py38h7b6447c_1"
    }, 
    {
      "name": "ruamel_yaml", 
      "version": "0.15.87-py38h7b6447c_105rn6e70"
    }, 
    {
      "name": "ruamel_yaml", 
      "version": "0.15.87-py38h7b6447c_1o32i4kvz"
    }, 
    {
      "name": "scikit-image", 
      "version": "0.16.2-py38h0573a6f_0"
    }, 
    {
      "name": "scikit-image", 
      "version": "0.16.2-py38h0573a6f_0_q1stq6s"
    }, 
    {
      "name": "scikit-learn", 
      "version": "0.23.1-py38h423224d_0"
    }, 
    {
      "name": "scikit-learn", 
      "version": "0.23.1-py38h423224d_010n9ctlk"
    }, 
    {
      "name": "scipy", 
      "version": "1.5.0-py38h0b6359f_0"
    }, 
    {
      "name": "seaborn", 
      "version": "0.10.1-py_0"
    }, 
    {
      "name": "seaborn", 
      "version": "0.10.1-py_0mosm70k_"
    }, 
    {
      "name": "secretstorage", 
      "version": "3.1.2-py38_0"
    }, 
    {
      "name": "send2trash", 
      "version": "1.5.0-py38_0"
    }, 
    {
      "name": "setuptools", 
      "version": "49.2.0-py38_0"
    }, 
    {
      "name": "setuptools", 
      "version": "49.2.0-py38_03s1y1h0c"
    }, 
    {
      "name": "simplegeneric", 
      "version": "0.8.1-py38_2"
    }, 
    {
      "name": "singledispatch", 
      "version": "3.4.0.3-py38_0"
    }, 
    {
      "name": "sip", 
      "version": "4.19.13-py38he6710b0_0"
    }, 
    {
      "name": "sip", 
      "version": "4.19.13-py38he6710b0_0l31rgv3m"
    }, 
    {
      "name": "six", 
      "version": "1.15.0-py_0"
    }, 
    {
      "name": "snappy", 
      "version": "1.1.8-he6710b0_0"
    }, 
    {
      "name": "snappy", 
      "version": "1.1.8-he6710b0_0wl80yzod"
    }, 
    {
      "name": "snowballstemmer", 
      "version": "2.0.0-py_0"
    }, 
    {
      "name": "sortedcollections", 
      "version": "1.2.1-py_0"
    }, 
    {
      "name": "sortedcollections", 
      "version": "1.2.1-py_0jdasxy71"
    }, 
    {
      "name": "sortedcontainers", 
      "version": "2.2.2-py_0"
    }, 
    {
      "name": "sortedcontainers", 
      "version": "2.2.2-py_0je122l_3"
    }, 
    {
      "name": "sortedcontainers", 
      "version": "2.2.2-py_0z2heqdcg"
    }, 
    {
      "name": "soupsieve", 
      "version": "2.0.1-py_0"
    }, 
    {
      "name": "sphinx", 
      "version": "3.1.2-py_0"
    }, 
    {
      "name": "sphinx", 
      "version": "3.1.2-py_0ltzkhga6"
    }, 
    {
      "name": "sphinxcontrib", 
      "version": "1.0-py38_1"
    }, 
    {
      "name": "sphinxcontrib-applehelp", 
      "version": "1.0.2-py_0"
    }, 
    {
      "name": "sphinxcontrib-applehelp", 
      "version": "1.0.2-py_0ncejqcwh"
    }, 
    {
      "name": "sphinxcontrib-devhelp", 
      "version": "1.0.2-py_0"
    }, 
    {
      "name": "sphinxcontrib-htmlhelp", 
      "version": "1.0.3-py_0"
    }, 
    {
      "name": "sphinxcontrib-htmlhelp", 
      "version": "1.0.3-py_0hbrwrq90"
    }, 
    {
      "name": "sphinxcontrib-htmlhelp", 
      "version": "1.0.3-py_0rlznsjzh"
    }, 
    {
      "name": "sphinxcontrib-jsmath", 
      "version": "1.0.1-py_0"
    }, 
    {
      "name": "sphinxcontrib-jsmath", 
      "version": "1.0.1-py_0ghe15zhb"
    }, 
    {
      "name": "sphinxcontrib-qthelp", 
      "version": "1.0.3-py_0"
    }, 
    {
      "name": "sphinxcontrib-serializinghtml", 
      "version": "1.1.4-py_0"
    }, 
    {
      "name": "sphinxcontrib-websupport", 
      "version": "1.2.3-py_0"
    }, 
    {
      "name": "sphinxcontrib-websupport", 
      "version": "1.2.3-py_00bg3iwdy"
    }, 
    {
      "name": "spyder", 
      "version": "4.1.4-py38_0"
    }, 
    {
      "name": "spyder", 
      "version": "4.1.4-py38_0ngzxs8hg"
    }, 
    {
      "name": "spyder-kernels", 
      "version": "1.9.2-py38_0"
    }, 
    {
      "name": "spyder-kernels", 
      "version": "1.9.2-py38_00keyp827"
    }, 
    {
      "name": "sqlalchemy", 
      "version": "1.3.18-py38h7b6447c_0"
    }, 
    {
      "name": "sqlalchemy", 
      "version": "1.3.18-py38h7b6447c_0kxper8h5"
    }, 
    {
      "name": "sqlite", 
      "version": "3.32.3-h62c20be_0"
    }, 
    {
      "name": "statsmodels", 
      "version": "0.11.1-py38h7b6447c_0"
    }, 
    {
      "name": "sympy", 
      "version": "1.6.1-py38_0"
    }, 
    {
      "name": "sympy", 
      "version": "1.6.1-py38_0okfo5ynk"
    }, 
    {
      "name": "tbb", 
      "version": "2020.0-hfd86e86_0"
    }, 
    {
      "name": "tblib", 
      "version": "1.6.0-py_0"
    }, 
    {
      "name": "terminado", 
      "version": "0.8.3-py38_0"
    }, 
    {
      "name": "testpath", 
      "version": "0.4.4-py_0"
    }, 
    {
      "name": "testpath", 
      "version": "0.4.4-py_03farm55q"
    }, 
    {
      "name": "testpath", 
      "version": "0.4.4-py_0glkmtknr"
    }, 
    {
      "name": "threadpoolctl", 
      "version": "2.1.0-pyh5ca1d4c_0"
    }, 
    {
      "name": "tk", 
      "version": "8.6.10-hbc83047_0"
    }, 
    {
      "name": "tk", 
      "version": "8.6.10-hbc83047_0zh3uyrn6"
    }, 
    {
      "name": "toml", 
      "version": "0.10.1-py_0"
    }, 
    {
      "name": "toolz", 
      "version": "0.10.0-py_0"
    }, 
    {
      "name": "tornado", 
      "version": "6.0.4-py38h7b6447c_1"
    }, 
    {
      "name": "tqdm", 
      "version": "4.47.0-py_0"
    }, 
    {
      "name": "tqdm", 
      "version": "4.47.0-py_0a65yw59h"
    }, 
    {
      "name": "traitlets", 
      "version": "4.3.3-py38_0"
    }, 
    {
      "name": "typing_extensions", 
      "version": "3.7.4.2-py_0"
    }, 
    {
      "name": "typing_extensions", 
      "version": "3.7.4.2-py_07uhga40f"
    }, 
    {
      "name": "typing_extensions", 
      "version": "3.7.4.2-py_0jsccdgyk"
    }, 
    {
      "name": "ujson", 
      "version": "1.35-py38h7b6447c_0"
    }, 
    {
      "name": "ujson", 
      "version": "1.35-py38h7b6447c_0mtteeji4"
    }, 
    {
      "name": "unicodecsv", 
      "version": "0.14.1-py38_0"
    }, 
    {
      "name": "unicodecsv", 
      "version": "0.14.1-py38_0qvw3gqrp"
    }, 
    {
      "name": "unixodbc", 
      "version": "2.3.7-h14c3975_0"
    }, 
    {
      "name": "unixodbc", 
      "version": "2.3.7-h14c3975_0mh0z6_c3"
    }, 
    {
      "name": "urllib3", 
      "version": "1.25.9-py_0"
    }, 
    {
      "name": "watchdog", 
      "version": "0.10.3-py38_0"
    }, 
    {
      "name": "wcwidth", 
      "version": "0.2.5-py_0"
    }, 
    {
      "name": "webencodings", 
      "version": "0.5.1-py38_1"
    }, 
    {
      "name": "webencodings", 
      "version": "0.5.1-py38_1a72bffn8"
    }, 
    {
      "name": "werkzeug", 
      "version": "1.0.1-py_0"
    }, 
    {
      "name": "werkzeug", 
      "version": "1.0.1-py_0k3wv_lav"
    }, 
    {
      "name": "wheel", 
      "version": "0.34.2-py38_0"
    }, 
    {
      "name": "widgetsnbextension", 
      "version": "3.5.1-py38_0"
    }, 
    {
      "name": "wrapt", 
      "version": "1.11.2-py38h7b6447c_0"
    }, 
    {
      "name": "wurlitzer", 
      "version": "2.0.1-py38_0"
    }, 
    {
      "name": "xlrd", 
      "version": "1.2.0-py_0"
    }, 
    {
      "name": "xlsxwriter", 
      "version": "1.2.9-py_0"
    }, 
    {
      "name": "xlwt", 
      "version": "1.3.0-py38_0"
    }, 
    {
      "name": "xmltodict", 
      "version": "0.12.0-py_0"
    }, 
    {
      "name": "xmltodict", 
      "version": "0.12.0-py_00qb_5rqe"
    }, 
    {
      "name": "xmltodict", 
      "version": "0.12.0-py_0pzxi_puq"
    }, 
    {
      "name": "xz", 
      "version": "5.2.5-h7b6447c_0"
    }, 
    {
      "name": "xz", 
      "version": "5.2.5-h7b6447c_0zbt1d055"
    }, 
    {
      "name": "yaml", 
      "version": "0.2.5-h7b6447c_0"
    }, 
    {
      "name": "yaml", 
      "version": "0.2.5-h7b6447c_00a6py0xf"
    }, 
    {
      "name": "yapf", 
      "version": "0.30.0-py_0"
    }, 
    {
      "name": "zeromq", 
      "version": "4.3.2-he6710b0_2"
    }, 
    {
      "name": "zeromq", 
      "version": "4.3.2-he6710b0_2djve4jxi"
    }, 
    {
      "name": "zict", 
      "version": "2.0.0-py_0"
    }, 
    {
      "name": "zipp", 
      "version": "3.1.0-py_0"
    }, 
    {
      "name": "zlib", 
      "version": "1.2.11-h7b6447c_3"
    }, 
    {
      "name": "zlib", 
      "version": "1.2.11-h7b6447c_3kpk_ayyv"
    }, 
    {
      "name": "zope", 
      "version": "1.0-py38_1"
    }, 
    {
      "name": "zope.event", 
      "version": "4.4-py38_0"
    }, 
    {
      "name": "zope.interface", 
      "version": "4.7.1-py38h7b6447c_0"
    }, 
    {
      "name": "zope.interface", 
      "version": "4.7.1-py38h7b6447c_0qdhn96sa"
    }, 
    {
      "name": "zstd", 
      "version": "1.4.5-h0b5b093_0"
    }
  ], 
  "provides": [
    "spark-plugin"
  ], 
  "schema_version": 1, 
  "scripts": {
    "defines": "conda_env.sh"
  }, 
  "setActiveSymlink": true, 
  "users": {}, 
  "version": "2020.07"
}

创建用于生成parcel的文件夹,重命名anaconda包的文件夹并放入其中,注意这里文件名有严格要求,否则打包parcel和分发时会出错

mkdir /root/anaconda-parcel
mv /root/anaconda3 /root/anaconda-parcel/Anaconda3-2020.07

打包成parcel

tar zcvf Anaconda3-2020.07-el7.parcel Anaconda3-2020.07/ --owner=root --group=root

生成sha1和sha256

sha1sum Anaconda3-2020.07-el7.parcel  | cut -d ' ' -f 1 > Anaconda3-2020.07-el7.parcel.sha1
sha256sum Anaconda3-2020.07-el7.parcel | cut -d ' ' -f 1 > Anaconda3-2020.07-el7.parcel.sha256

下载cloudera提供的parcel和csd校验工具cm_ext

地址为https://github.com/cloudera/cm_ext

生成manifest.json

python cm_ext/make_manifest/make_manifest.py .

manifest.json文件如下

{
    "parcels": [
        {
            "hash": "3ee385fd89ad454015c945c88f42563c318ade8c",
            "parcelName": "Anaconda3-2020.07-el7.parcel",
            "components": [
                {
                    "pkg_version": "2020.07",
                    "version": "2020.07",
                    "name": "Anaconda3"
                }
            ]
        }
    ],
    "lastUpdated": 1600151161169
}

生成后的目录结构如下

2.安装包方式

下载linux安装包一台台安装,linux版本下载地址为

https://repo.continuum.io/archive/

常用版本对应关系如下,需要下载类似Anaconda3-5.2.0-Linux-x86_64.sh的包

Python3.5 https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh

Python3.6 https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh

这里以python3.6为例简要说明如下

进入到安装包目录,执行命令

bash Anaconda3-5.2.0-Linux-x86_64.sh

输入回车键

输入”yes”,设置安装路径,这里安装在/usr/local/anaconda3目录下,

如果提示“tar(child): bzip2: Cannot exec: No such file or directory”,需要先安装bzip2。

yum -y install bzip2

安装完后,提示设置anaconda的PATH路径

新的版本会提示创建环境

如果这里选择yes,anaconda会在~/.bashrc中加入一些环境变量,这样会导致impala-shell命令不可用,不建议设置

如果需要在环境变量中增加python3,可以采用以下方式

ln -s /usr/local/anaconda3/bin/python3.7 /usr/bin/python3
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档