Installing older version of h2o in conda virtual environment on Windows

I'm struggling to figure out conda virtual environments on windows. All I want is to be able to have different versions of h2o installed at the same time because of their insane decision to not allow you to be able to load files saved in even the most minor different version.

I created a virtual environment by cloning my base anaconda:

conda create -n h203_14_0_7 --clone base

I then activated the virtual environment like so:

C:\ProgramData\Anaconda3\Scripts\activate h203_14_0_7

Now that I'm in the virtual environment (I see the (h203_14_0_7) at the beginning of the prompt), i want to uninstall the version of h2o in this virtual environment so I tried:

pip uninstall h2o

But this output

which to me looks like it's going to uninstall the global h2o rather than the virtual environment h2o. So I think it's using the global pip instead of the pip it should have cloned off the base. So how to I use the virtual environment pip to uninstall h2o just for my virtual environment and how can I be sure that it's doing the right thing?

I then ran

conda intall pip

and it seems that after that I was able to use pip to uninstall h2o only from the virtual environment (I hope). I then downloaded the older h2o version from here: https://github.com/h2oai/h2o-3/releases/tag/jenkins-rel-weierstrass-7

but when I try install it I get

(h203_14_0_7) C:\ProgramData\Anaconda3\envs\h203_14_0_7>pip install C:\Users\dan25\Downloads\h2o-3-jenkins-rel-weierstrass-7.tar.gz
Processing c:\users\dan25\downloads\h2o-3-jenkins-rel-weierstrass-7.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\ProgramData\Anaconda3\envs\h203_14_0_7\lib\tokenize.py", line 452, in open
        buffer = _builtin_open(filename, 'rb')
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\dan25\\AppData\\Local\\Temp\\pip-sf7r_6pm-build\\setup.py'

So what now?

I had trouble (e.g. https://0xdata.atlassian.net/browse/PUBDEV-3370 ) getting that approach to ever work. It felt like some kind of global dependency was in there, somewhere.

So, I personally just uninstall, and install the desired version, as I need to move between versions. (Actually, I am more likely to use a different VirtualBox or AWS image for each.)

However I noticed searching for conda on the H2O jira that there is a lot of activity recently. They might all be pointing out the same bug you have found, but if so it sounds like it is something getting enough attention to get fixed.

Aside: finding old versions (and your edit showing install problems)

To find, e.g. 3.14.0.7, google it with "h2o". The top hit is http://h2o-release.s3.amazonaws.com/h2o/rel-weierstrass/7/index.html

The "rel-weierstrass" represents 3.14.0, and the 7 is in the URL. (I've yet to see a full list of all the rel-XXX names, but google will always find at least one in the series, even if it won't find the exact minor version.)

Download the zip file you find there. Inside you will find both an R package, and a whl package for Python. So unzip it, extract the one you want, then pip install it.

These zip files are always on S3 (AFAIK). The link you showed was a source snapshot, on github.

Downloading & Installing H2O, This section describes how to download and install the latest stable version of H2O. Run the following commands in a Terminal window to install H2O for Python. describes how to set up and run H2O in an Anaconda Cloud environment. Open a terminal window and run the following command to install H2O on the Anaconda Cloud. The H2O version in this command should match the version that you want to download. If you leave the h2o version blank and specify just h2o, then the latest version will be installed.

Install requirements:

pip install requests tabulate numpy scikit-learn

Extract the archive:

zcat h2o-3-jenkins-rel-weierstrass-7.tar.gz | tar xvf -

cd into Python directory and build:

cd h2o-py
../gradlew build

1. Installation and Quick-Start, If you are using an earlier version of Python you may need to upgrade. You might also want to take a look at Anaconda. For instance, when testing an install on 64-bit Windows, with 64-bit R, it was when I first tried library(h2o) that I was told I had a 32-bit version of the JDK Using virtualenv does not work with H2O. conda install. linux-64 v3.18.0.2. win-32 v3.18.0.2. win-64 v3.18.0.2. osx-64 v3.18.0.2. To install this package with conda run: conda install -c anaconda h2o.

I have this working now. I think the trick is to make sure you do NOT have h2o installed on your base python. I did the following:

pip uninstall h2o
conda create --name h2o-base pip
conda activate h2o-base
conda install numpy
conda install pandas
conda install requests
conda install tabulate
conda install colorama
conda install future
conda install jupyter
python -m pip install ipykernel
conda deactivate

And now to install specific versions of h2o, you need to URL of the .whl file for that version and you can find a list of the URLs of all the old versions here: https://github.com/h2oai/h2o-3/blob/master/Changes.md

So for example to install version 3.18.0.8:

conda create --name h2o-3-18-0-8 --clone h2o-base
conda activate h2o-3-18-0-8
pip install http://h2o-release.s3.amazonaws.com/h2o/rel-wolpert/8/Python/h2o-3.18.0.8-py2.py3-none-any.whl
python -m ipykernel install --user --name h2o-3-18-0-8 --display-name "Python (h2o-3-18-0-8)"

or version 3.20.0.2 (make sure to conda deactivate first):

conda create --name h2o-3-20-0-2 --clone h2o-base
conda activate h2o-3-20-0-2
pip install http://h2o-release.s3.amazonaws.com/h2o/rel-wright/2/Python/h2o-3.20.0.2-py2.py3-none-any.whl
python -m ipykernel install --user --name h2o-3-20-0-2 --display-name "Python (h2o-3-20-0-2)"

This set-up allows me to have multiple versions of h2o installed on the same computer and if I have to use serialized models I just have to run python from the virtual environment with the correct version of h2o installed. I think this is preferable to uninstalling and reinstalling h2o each time.

Here is the environments.yml file if you want to skip all the manual installs above:

name: h2o-base
channels:
  - conda-forge
  - defaults
dependencies:
  - asn1crypto=0.24.0=py37_1003
  - backcall=0.1.0=py_0
  - bleach=3.0.2=py_0
  - ca-certificates=2018.10.15=ha4d7672_0
  - certifi=2018.10.15=py37_1000
  - cffi=1.11.5=py37hfa6e2cd_1001
  - chardet=3.0.4=py37_1003
  - colorama=0.4.0=py_0
  - cryptography=2.3=py37h74b6da3_0
  - cryptography-vectors=2.3.1=py37_1000
  - decorator=4.3.0=py_0
  - entrypoints=0.2.3=py37_1002
  - future=0.16.0=py37_1002
  - icu=58.2=vc14_0
  - idna=2.7=py37_1002
  - ipykernel=5.1.0=pyh24bf2e0_0
  - ipython=7.0.1=py37h39e3cac_1000
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.4.2=py_0
  - jedi=0.13.1=py37_1000
  - jinja2=2.10=py_1
  - jpeg=9b=vc14_2
  - jsonschema=2.6.0=py37_1002
  - jupyter=1.0.0=py_1
  - jupyter_client=5.2.3=py_1
  - jupyter_console=6.0.0=py_0
  - jupyter_core=4.4.0=py_0
  - libflang=5.0.0=vc14_20180208
  - libpng=1.6.34=vc14_0
  - libsodium=1.0.16=vc14_0
  - llvm-meta=5.0.0=0
  - markupsafe=1.0=py37hfa6e2cd_1001
  - mistune=0.8.4=py37hfa6e2cd_1000
  - nbconvert=5.3.1=py_1
  - nbformat=4.4.0=py_1
  - notebook=5.7.0=py37_1000
  - openblas=0.2.20=vc14_8
  - openmp=5.0.0=vc14_1
  - openssl=1.0.2p=hfa6e2cd_1001
  - pandas=0.23.4=py37h830ac7b_1000
  - pandoc=2.3.1=0
  - pandocfilters=1.4.2=py_1
  - parso=0.3.1=py_0
  - pickleshare=0.7.5=py37_1000
  - pip=18.1=py37_1000
  - prometheus_client=0.4.2=py_0
  - prompt_toolkit=2.0.6=py_0
  - pycparser=2.19=py_0
  - pygments=2.2.0=py_1
  - pyopenssl=18.0.0=py37_1000
  - pyqt=5.6.0=py37h764d66f_7
  - pysocks=1.6.8=py37_1002
  - python=3.7.0=hc182675_1005
  - python-dateutil=2.7.3=py_0
  - pytz=2018.5=py_0
  - pywinpty=0.5.4=py37_1002
  - pyzmq=17.1.2=py37hf576995_1001
  - qt=5.6.2=vc14_1
  - qtconsole=4.4.2=py_1
  - requests=2.19.1=py37_1001
  - send2trash=1.5.0=py_0
  - setuptools=40.4.3=py37_0
  - simplegeneric=0.8.1=py_1
  - sip=4.18.1=py37h6538335_0
  - six=1.11.0=py37_1001
  - tabulate=0.8.2=py_0
  - terminado=0.8.1=py37_1001
  - testpath=0.4.2=py37_1000
  - tornado=5.1.1=py37hfa6e2cd_1000
  - traitlets=4.3.2=py37_1000
  - urllib3=1.23=py37_1001
  - vc=14=0
  - vs2015_runtime=14.0.25420=0
  - wcwidth=0.1.7=py_1
  - webencodings=0.5.1=py_1
  - wheel=0.32.1=py37_0
  - widgetsnbextension=3.4.2=py37_1000
  - win_inet_pton=1.0.1=py37_1002
  - wincertstore=0.2=py37_1002
  - winpty=0.4.3=4
  - zeromq=4.2.5=vc14_2
  - zlib=1.2.11=vc14_0
  - blas=1.0=mkl
  - icc_rt=2017.0.4=h97af966_0
  - intel-openmp=2019.0=118
  - 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
  - mkl=2019.0=118
  - mkl_fft=1.0.6=py37hdbbee80_0
  - mkl_random=1.0.1=py37h77b88f5_1
  - msys2-conda-epoch=20160418=1
  - numpy=1.15.2=py37ha559c80_0
  - numpy-base=1.15.2=py37h8128ebf_0

Downloading & Installing H2O, Note: To download the nightly bleeding edge release, go to The following two commands remove any previously installed H2O packages for R. Run the following commands in a Terminal window to install H2O for Python. file: https://​github.com/h2oai/h2o-3/blob/master/h2o-py/conda/h2o/meta.yaml. conda install. linux-64 v3.28.1.2. win-32 v3.28.1.2. osx-64 v3.28.1.2. linux-32 v3.28.1.2. win-64 v3.28.1.2. To install this package with conda run: conda install -c h2oai h2o.

Packages for 64-bit Windows with Python 3.7, Name, Version, Summary / License, In Installer azure, 1.0.2, Microsoft Azure SDK for Python / Apache License 2.0 conda-env, 2.6.0, Tools for interacting with conda environments. entrypoints, 0.3, Discover and load entry points from installed packages. virtualenv, 16.7.5, Virtual Python Environment builder / MIT. Before moving further, make sure you have Anaconda already installed. For more info about that, check out this link. Also please note that all instructions below should be executed in your bash command line (for Linux), terminal (for Mac) or Anaconda prompt (for Windows). There are two popular ways to create a virtual environment using conda. 1.

Install sklearn_pandas with conda via Windows command line , Installing older version of h2o in conda virtual environment on Windows. I'm struggling to figure out conda virtual environments on windows. All I want is to be​  With conda, you can create, export, list, remove, and update environments that have different versions of Python and/or packages installed in them. Switching or moving between environments is called activating the environment. You can also share an environment file. There are many options available for the commands described on this page. For

Python integration, +Using Microsoft Azure Kubernetes Service (AKS) Installing Python packages; Initial setup of the builtin Python environment Mixed conda / virtualenv support /PATH/TO/dataiku-dss-VERSION/installer.sh -d DATA_DIR -p PORT -n For earlier versions of Anaconda/Miniconda which do not provide a condabin  5. Install additional Python packages to a virtual environment. To install additional packages only to your virtual environment, enter the following command where yourenvname is the name of your environemnt, and [package] is the name of the package you wish to install.

Comments
  • Thanks, where do you find the older versions? Could you give an example of how to install version 3.14.0.7 and how you found the URL?
  • @Dan Google "h2o 3.14.0.7" :-) Also see stackoverflow.com/q/40651735/841830
  • OK so if I google that exact version I get a page with a URL to the whl which I can install from (h2o-release.s3.amazonaws.com/h2o/rel-weierstrass/7/index.html) however if I google other versions I get no such luck. Is there not some directory or list of the URLs where the older version whl files can be found?
  • btw even though this is the answer I guess I'm going to have to go with, I'm going to leave this as unresolved because it really seems like something h2o users will need to be able to do. Thanks for the help though!
  • @Dan I've appended to my answer.
  • gradlew build will install h2o to the python path?
  • Probably not, but in directory h2o-py there is setup.py and you know what to do with it.
  • I'm really not following how this works. Could you give step by step instructions of how to do this in Windows including what I would need to install (zcat ... | ... doesn't seem like Windows to me), which directories I should go to and what to do with setup.py afterwards to make sure I'm installing to the conda virtual environment rather than global Python?
  • zcat ... | works on Windows in command line. But you can extract the archive any way you prefer — using WinRAR or WinZIP of how you usually extract archives.