Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Ubuntu 16.04 #965

Merged
merged 5 commits into from
Aug 31, 2016
Merged

Add support for Ubuntu 16.04 #965

merged 5 commits into from
Aug 31, 2016

Conversation

lukeyeager
Copy link
Member

Several key packages have been upgraded from 14.04 to 16.04.

  • gevent 1.0 -> 1.1.0
  • gunicorn 17.5 -> 19.4.5

The gevent upgrade is particularly troublesome because it requires upgrading Flask-Socketio. Which isn't so bad in and of itself, but causes problems for packaging because of a naming conflict (see #476 (comment), miguelgrinberg/python-socketio#23). I can get around the packaging issue, but it's not pretty.

Another issue is that some versions of gunicorn and gevent conflict. So while requirements says that you can use gevent>=1.0,<=1.1.0 and/or gunicorn>=17.5,<=19.4.5, it should really read (gevent==1.0 AND gunicorn==17.5) OR (gevent==1.1.0 AND gunicorn==19.4.5). Otherwise you get this weird behavior where the Caffe subprocess goes defunct.

I also found a funny pydot packaging bug along the way (see commit msg).

@lukeyeager
Copy link
Member Author

Rebased after conflict with #800.

@gheinrich
Copy link
Contributor

I tried this PR on Ubuntu 14.04. I did a pip install -r requirements.txt and created classification datasets/models on both the prod and dev server. I didn't see anything wrong.

@lukeyeager
Copy link
Member Author

Just to try to head off any complaints, if you see this error:

Traceback (most recent call last):
  File "./digits-devserver", line 42, in <module>
    from digits.webapp import app, socketio, scheduler
  File "/home/lyeager/digits/digits/webapp.py", line 22, in <module>
    socketio = SocketIO(app, async_mode='gevent')
TypeError: __init__() got an unexpected keyword argument 'async_mode'

Then you need to run this command to get the new requirements:

pip install -r requirements.txt

In general, you need to run that command anytime there is a change made to requirements.txt (documentation).

@lukeyeager lukeyeager merged commit ba48140 into NVIDIA:master Aug 31, 2016
@lukeyeager lukeyeager deleted the xenial branch August 31, 2016 23:18
SlipknotTN pushed a commit to cynnyx/DIGITS that referenced this pull request Mar 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants