Last active
May 19, 2022 14:40
-
-
Save tr00st/190ab4de62f9b23bea69 to your computer and use it in GitHub Desktop.
DO NOT USE: OUT OF DATE & UNMAINTAINED - Python 3 upgrade script for the Django image on DigitalOcean
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Copyright 2015 James Cheese | |
# You may do anything with this work that copyright law would normally | |
# restrict, so long as you retain the above notice(s) and this license | |
# in all redistributed copies and derived works. There is no warranty. | |
# | |
# Python 3 Upgrade for Django Droplet | |
# Will update the "Django on 14.04" Digital Ocean image. | |
# Run as root. | |
# Grab psycopg2 and pip | |
apt-get install python3-pip python3-psycopg2 | |
# Remove the Python 2.7 version of gunicorn, so we can... | |
pip uninstall gunicorn | |
# Install the Python 3 version of gunicorn, and a couple of dependencies. | |
pip3 install gunicorn tornado django | |
# Sadly, at time of writing, gevent isn't Python 3 compatible... But tornado is! | |
# So, switch them out with a little sed magic | |
sed 's/worker_class = '\''gevent'\''/worker_class='\''tornado'\''/' /etc/gunicorn.d/gunicorn.py -i.orig | |
# Restart gunicorn to make the changes take effect... | |
service gunicorn restart | |
# And we're good! |
You need to also update the nginx config files, which are all statically configured to point to the python2.7 site-packages directory.
root@tct001:/home/plucena# grep -R python /etc/nginx /etc/nginx/sites-enabled/django: alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/; /etc/nginx/sites-available/django: alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin/;
This may be leading to at least some of the errors.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
don't run the script, now I can't fix the 502 nginx error