paris-saclay-cds / ramp-workflow

Toolkit for building predictive workflows on top of pydata (pandas, scikit-learn, pytorch, keras, etc.).
https://paris-saclay-cds.github.io/ramp-docs/
BSD 3-Clause "New" or "Revised" License
68 stars 42 forks source link

The requirements are too stringent #130

Open GaelVaroquaux opened 6 years ago

GaelVaroquaux commented 6 years ago

Installing this package forces an upgrade of core libraries (such as a numpy). This poses problem (basically, I am needing to explain environments to beginners).

jorisvandenbossche commented 6 years ago

For pandas the requirement is >=0.19, which is not that stringent I think. For numpy there are no minimum requirements (apart from the ones coming from pandas or scikit-learn):

https://github.com/paris-saclay-cds/ramp-workflow/blob/68146005369b31c1c855c2372172d355440994a1/setup.py#L58-L64

GaelVaroquaux commented 6 years ago

I think that pip uses the requirements.txt, in which there are version numbers.

jorisvandenbossche commented 6 years ago

Pip should not use a requirements.txt, that serves other purposes. And from a quick test that seems to be the case (so using install_requires):


joris@joris-XPS-13-9350:~/scipy$ pip install https://api.github.com/repos/paris-saclay-cds/ramp-workflow/zipball/master
Collecting https://api.github.com/repos/paris-saclay-cds/ramp-workflow/zipball/master
  Downloading https://api.github.com/repos/paris-saclay-cds/ramp-workflow/zipball/master (2.8MB)
    100% |████████████████████████████████| 2.8MB 232kB/s 
Requirement already satisfied: numpy in /home/joris/miniconda3/lib/python3.5/site-packages (from ramp-workflow==0+unknown)
Requirement already satisfied: scipy in /home/joris/miniconda3/lib/python3.5/site-packages (from ramp-workflow==0+unknown)
Requirement already satisfied: pandas>=0.19.2 in /home/joris/miniconda3/lib/python3.5/site-packages (from ramp-workflow==0+unknown)
Requirement already satisfied: scikit-learn>=0.18 in /home/joris/miniconda3/lib/python3.5/site-packages (from ramp-workflow==0+unknown)
Requirement already satisfied: cloudpickle in /home/joris/miniconda3/lib/python3.5/site-packages (from ramp-workflow==0+unknown)
Requirement already satisfied: colored in /home/joris/miniconda3/lib/python3.5/site-packages (from ramp-workflow==0+unknown)
Requirement already satisfied: python-dateutil>=2 in /home/joris/miniconda3/lib/python3.5/site-packages (from pandas>=0.19.2->ramp-workflow==0+unknown)
Requirement already satisfied: pytz>=2011k in /home/joris/miniconda3/lib/python3.5/site-packages (from pandas>=0.19.2->ramp-workflow==0+unknown)
Requirement already satisfied: six>=1.5 in /home/joris/miniconda3/lib/python3.5/site-packages (from python-dateutil>=2->pandas>=0.19.2->ramp-workflow==0+unknown)
Installing collected packages: ramp-workflow
  Running setup.py install for ramp-workflow ... done
^COperation cancelled by user
GaelVaroquaux commented 6 years ago

Well, then the pandas requirement is too stringent: it's above latest ubuntu.

jorisvandenbossche commented 6 years ago

What is the version in the latest ubuntu?

jorisvandenbossche commented 6 years ago

Scikit learn will also be too strict then, since it is from roughly the same time (sklearn 0.18 is from Oct 2016, pandas 0.19.2 from Dec 2016).

If we want to support older version, we should make sure to test this on travis and probably need to make some adjustments in the code for compatibility.

jorisvandenbossche commented 6 years ago

Pandas: https://packages.ubuntu.com/xenial/python-pandas (0.17.1) Scikit-learn: https://packages.ubuntu.com/xenial/python-sklearn (0.17.0)

GaelVaroquaux commented 6 years ago

I do have the impression that the requirements.txt are picked up:

gael ~ $ apt-cache policy python-numpy python-sklearn python-pandas                                                                                                          [15:24]
python-numpy:
  Installed: 1:1.12.1-3.1ubuntu4
  Candidate: 1:1.12.1-3.1ubuntu4
  Version table:
 *** 1:1.12.1-3.1ubuntu4 500
        500 http://fr.archive.ubuntu.com/ubuntu artful/main amd64 Packages
        100 /var/lib/dpkg/status
python-sklearn:
  Installed: 0.19.1-3~nd17.10+1
  Candidate: 0.19.1-3~nd17.10+1
  Version table:
 *** 0.19.1-3~nd17.10+1 500
        500 http://neurodebian.ovgu.de/debian artful/main amd64 Packages
        500 http://neurodebian.ovgu.de/debian artful/main i386 Packages
        100 /var/lib/dpkg/status
     0.19.0-1build1 500
        500 http://fr.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
        500 http://fr.archive.ubuntu.com/ubuntu artful/universe i386 Packages
python-pandas:
  Installed: 0.22.0-2~nd17.10+1
  Candidate: 0.22.0-2~nd17.10+1
  Version table:
 *** 0.22.0-2~nd17.10+1 500
        500 http://neurodebian.ovgu.de/debian artful/main amd64 Packages
        500 http://neurodebian.ovgu.de/debian artful/main i386 Packages
        100 /var/lib/dpkg/status
     0.19.2-5.1ubuntu4 500
        500 http://fr.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
        500 http://fr.archive.ubuntu.com/ubuntu artful/universe i386 Packages
gael ~ $ pip install https://api.github.com/repos/paris-saclay-cds/ramp-workflow/zipball/master                                                                              [15:25]
Collecting https://api.github.com/repos/paris-saclay-cds/ramp-workflow/zipball/master
  Downloading https://api.github.com/repos/paris-saclay-cds/ramp-workflow/zipball/master (2.8MB)
    100% |████████████████████████████████| 2.8MB 211kB/s 
Collecting numpy (from ramp-workflow==0+unknown)
  Downloading https://files.pythonhosted.org/packages/76/4d/418dda252cf92bad00ab82d6b2a856e7843b47a5c2f084aed34b14b67d64/numpy-1.14.2-cp27-cp27mu-manylinux1_x86_64.whl (12.1MB)

Numpy is being upgrade. The requirements.txt specify numpy >= 0.13

glemaitre commented 6 years ago

we can try to make a travis build and see what breaks there.