openml / automlbenchmark

OpenML AutoML Benchmarking Framework
https://openml.github.io/automlbenchmark
MIT License
401 stars 132 forks source link

Setup: simplify install + cleanup/standardize usage of virtual environments by the app. #64

Open sebhrusen opened 4 years ago

sebhrusen commented 4 years ago

Currently virtual envs appear in various places:

  1. README recommends users to create their own virtual env under automlbenchmark.
  2. docker and aws images create a virtual env for the app under /venvs/bench.
  3. frameworks/shared/setup.sh offers the possibility to create a virtual env under frameworks/{framework}/venv dedicated to the framework for a better isolation.

The last one should stay as is. However we could standardize the first 2 by creating a setup.py that would automatically create and activate a local virtual environment under automlbenchmark/venv + install dependencies, and use this setup script in docker + aws setup.

Library should then be ready to use after simply running: pip install .

PGijsbers commented 4 years ago

Sounds good 👍 but I would make the creation and activation of the virtual environment optional. I disagree that the default behavior of the install should be to create a new venv in which to install rather than installing it in the active venv.

sebhrusen commented 4 years ago

I disagree that the default behavior of the install should be to create a new venv in which to install rather than installing it in the active venv.

I agree with you, not sure what I had in mind when writing this: it doesn't make sense to systematically create a venv on install. The main idea is to have a simpler, one liner, way to set up the app. but I'm not sure it's currently doable using pip install/setup.py as the app is writing under frameworks folder each time the user is using a different framework, and more importantly it would completely prevent the container mode due to limitations with docker context root.