Fortsetzung vom letzten Mal, ein Memo zum Erstellen einer Python-Anwendung mit Heroku Dieses Mal werde ich mich auf die Fehler konzentrieren, die bei der Entwicklung aufgetreten sind.
Referenzquelle: https://gist.github.com/konitter/5370904 http://voluntas.hatenablog.com/entry/20110919/1316426034 http://qiita.com/nakazye/items/48651e39f07da82fe79e
Heroku Körper ist
$ sudo gem install heroku
Sie können es mit installieren, aber ein Fehler tritt sofort auf ...
Operation not permitted - /usr/bin/…/
Es scheint, dass der Installationsordner keine Berechtigung hat. Er wird durch Ändern des Installationsordners gelöst
$ sudo gem install -n /usr/local/bin heroku
(Referenzquelle: http://qiita.com/AcaiBowl/items/4bb4708de03e6ee14a4a)
virtualenv
Erstellen Sie einen Ordner für die Entwicklung
$ mkdir heroku-django
$ cd heroku-django
Erweitern Sie im erstellten Ordner virtualenv. Es wird empfohlen, mit virtualenv in heroku zu entwickeln! !! (Um die erforderlichen Bibliotheken zu minimieren)
$ virtualenv --no-site-packages .
$ source bin/activate
$ pip install django
$ env ARCHFLAGS="-arch i386 -arch x86_64" bin/pip install psycopg2
$ pip install gunicorn
Notieren Sie die installierte Bibliothek in der Datei require.txt im Verzeichnis heroku_django
$ pip freeze > requirements.txt
Erstellen Sie eine Procfile im Verzeichnis heroku_django (erforderlich, um Gunicorn auf heroku zu verwenden) Ich stolperte, weil es sich nicht leicht bewegte
Procfile
web: gunicorn --pythonpath './mysite' mysite.wsgi --log-file -
Es ist okay mit einer Zeile. Der Punkt ist, den Python-Pfad anzugeben
Von hier aus ist es das gleiche wie bei der normalen Djnago-Entwicklung http://eiry.bitbucket.org/ Es ist leicht verständlich zusammengefasst.
Erstellen Sie eine Gitignore-Datei im Verzeichnis heroku_django (Weil Sie keine unnötigen Dateien pushen)
.gitignore
bin/
include/
lib/
*.pyc
Bei der Bereitstellung
$ git push heroku master
Ein Fehler ist aufgetreten
Error while running '$ python mysite/manage.py collectstatic --noinput'.
Fehler, dass auf heroku kein statischer Ordner erstellt werden kann, behoben durch Hinzufügen der folgenden 3 Zeilen zu settings.py
#### **`setting.py`**
```python
PROJECT_DIR = os.path.dirname(__file__)
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
Befehl zum Erstellen eines statischen Ordners direkt unter dem Verzeichnisordner
Vor der Bereitstellung
$ python manage.py runserver
Oder
$ foreman start
Lassen Sie uns überprüfen, ob die App funktioniert.
bootstrap Vorsichtsmaßnahmen bei der Verwendung von Bootstrap Fehler, der auf dem Runserver gut angezeigt wird, CSS jedoch beim Foreman-Start nicht gut lesen kann http://stackoverflow.com/questions/16170030/django-serves-static-files-with-runserver-but-not-with-foreman Ist genau.
$ pip install whitenoise
Ist notwendig.
Recommended Posts