django - Getting Started with Python on Heroku - Run the app locally step issue -
i following "getting started python on heroku" official tutorial. think tutorial setting django hello world, though have not seen outcome yet.
these steps worked:
$ git clone https://github.com/heroku/python-getting-started.git $ heroku create $ git push heroku master
output last command (important part in opinion):
... remote: -----> python app detected remote: -----> installing runtime (python-2.7.9) remote: -----> installing dependencies pip remote: collecting dj-database-url==0.3.0 (from -r requirements.txt (line 1)) remote: downloading dj_database_url-0.3.0-py2.py3-none-any.whl remote: collecting django==1.8.1 (from -r requirements.txt (line 2)) remote: downloading django-1.8.1-py2.py3-none-any.whl (6.2mb) remote: collecting django-postgrespool==0.3.0 (from -r requirements.txt (line 3)) remote: downloading django-postgrespool-0.3.0.tar.gz remote: collecting gunicorn==19.3.0 (from -r requirements.txt (line 4)) remote: downloading gunicorn-19.3.0-py2.py3-none-any.whl (110kb) remote: collecting psycopg2==2.6 (from -r requirements.txt (line 5)) remote: downloading psycopg2-2.6.tar.gz (367kb) remote: collecting sqlalchemy==1.0.4 (from -r requirements.txt (line 6)) remote: downloading sqlalchemy-1.0.4.tar.gz (4.6mb) remote: collecting whitenoise==1.0.6 (from -r requirements.txt (line 7)) remote: downloading whitenoise-1.0.6-py2.py3-none-any.whl remote: installing collected packages: dj-database-url, django, psycopg2, sqlalchemy, django-postgrespool, gunicorn, whitenoise remote: running setup.py install psycopg2 remote: running setup.py install sqlalchemy remote: running setup.py install django-postgrespool remote: installed django-1.8.1 sqlalchemy-1.0.4 dj-database-url-0.3.0 django-postgrespool-0.3.0 gunicorn-19.3.0 psycopg2-2.6 whitenoise-1.0.6 ...
further commands:
$ heroku ps:scale web=1 $ heroku open
then procfile defined following line:
web: gunicorn gettingstarted.wsgi --log-file -
then created virtualenv (tried both python 2.7.6. , 3.4.2):
$ virtual venv $ source venv/bin/activate $ pip install -r requirements.txt --allow-all-external
first time around had problem psycopg2-2.6, believe installed. here requirements: - dj-database-url==0.3.0 - django==1.8.1 - django-postgrespool==0.3.0 - gunicorn==19.3.0 - psycopg2==2.6 - sqlalchemy==1.0.4 - whitenoise==1.0.6
this got stuck:
foreman start web
called main directory of project structure:
python-getting-started/ ├── procfile ├── procfile.windows ├── readme.md ├── gettingstarted │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-34.pyc │ │ ├── settings.cpython-34.pyc │ │ └── wsgi.cpython-34.pyc │ ├── settings.py │ ├── static │ │ └── humans.txt │ ├── urls.py │ └── wsgi.py ├── hello │ ├── __init__.py │ ├── __pycache__ │ │ └── __init__.cpython-34.pyc │ ├── admin.py │ ├── models.py │ ├── templates │ │ └── db.html │ ├── tests.py │ └── views.py ├── manage.py ├── requirements.txt └── runtime.txt
the output of last command is:
23:35:07 web.1 | started pid 6296 23:35:07 web.1 | [2015-06-14 23:35:07 +0100] [6296] [info] starting gunicorn 19.3.0 23:35:07 web.1 | [2015-06-14 23:35:07 +0100] [6296] [info] listening at: http://0.0.0.0:5000 (6296) 23:35:07 web.1 | [2015-06-14 23:35:07 +0100] [6296] [info] using worker: sync 23:35:07 web.1 | [2015-06-14 23:35:07 +0100] [6299] [info] booting worker pid: 6299 23:35:07 web.1 | [2015-06-14 22:35:07 +0000] [6299] [error] exception in worker process: 23:35:07 web.1 | traceback (most recent call last): 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/utils.py", line 111, in load_backend 23:35:07 web.1 | return import_module('%s.base' % backend_name) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/importlib/__init__.py", line 109, in import_module 23:35:07 web.1 | return _bootstrap._gcd_import(name[level:], package, level) 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 2254, in _gcd_import 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 2237, in _find_and_load 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 1129, in _exec 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 1471, in exec_module 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django_postgrespool/base.py", line 8, in <module> 23:35:07 web.1 | psycopg2 import interfaceerror, programmingerror, operationalerror 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/__init__.py", line 50, in <module> 23:35:07 web.1 | psycopg2._psycopg import binary, number, string, datetime, rowid 23:35:07 web.1 | importerror: dlopen(/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so, 2): library not loaded: libssl.1.0.0.dylib 23:35:07 web.1 | referenced from: /users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so 23:35:07 web.1 | reason: image not found 23:35:07 web.1 | 23:35:07 web.1 | during handling of above exception, exception occurred: 23:35:07 web.1 | 23:35:07 web.1 | traceback (most recent call last): 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker 23:35:07 web.1 | worker.init_process() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/workers/base.py", line 118, in init_process 23:35:07 web.1 | self.wsgi = self.app.wsgi() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/app/base.py", line 67, in wsgi 23:35:07 web.1 | self.callable = self.load() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 23:35:07 web.1 | return self.load_wsgiapp() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 23:35:07 web.1 | return util.import_app(self.app_uri) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/util.py", line 355, in import_app 23:35:07 web.1 | __import__(module) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/gettingstarted/wsgi.py", line 16, in <module> 23:35:07 web.1 | application = get_wsgi_application() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application 23:35:07 web.1 | django.setup() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/__init__.py", line 18, in setup 23:35:07 web.1 | apps.populate(settings.installed_apps) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate 23:35:07 web.1 | app_config.import_models(all_models) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models 23:35:07 web.1 | self.models_module = import_module(models_module_name) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/importlib/__init__.py", line 109, in import_module 23:35:07 web.1 | return _bootstrap._gcd_import(name[level:], package, level) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/contrib/auth/models.py", line 41, in <module> 23:35:07 web.1 | class permission(models.model): 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/models/base.py", line 139, in __new__ 23:35:07 web.1 | new_class.add_to_class('_meta', options(meta, **kwargs)) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/models/base.py", line 324, in add_to_class 23:35:07 web.1 | value.contribute_to_class(cls, name) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/models/options.py", line 250, in contribute_to_class 23:35:07 web.1 | self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/__init__.py", line 36, in __getattr__ 23:35:07 web.1 | return getattr(connections[default_db_alias], item) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/utils.py", line 240, in __getitem__ 23:35:07 web.1 | backend = load_backend(db['engine']) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/utils.py", line 129, in load_backend 23:35:07 web.1 | raise improperlyconfigured(error_msg) 23:35:07 web.1 | django.core.exceptions.improperlyconfigured: 'django_postgrespool' isn't available database backend. 23:35:07 web.1 | try using 'django.db.backends.xxx', xxx 1 of: 23:35:07 web.1 | 'base', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3' 23:35:07 web.1 | error was: dlopen(/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so, 2): library not loaded: libssl.1.0.0.dylib 23:35:07 web.1 | referenced from: /users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so 23:35:07 web.1 | reason: image not found 23:35:07 web.1 | traceback (most recent call last): 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/utils.py", line 111, in load_backend 23:35:07 web.1 | return import_module('%s.base' % backend_name) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/importlib/__init__.py", line 109, in import_module 23:35:07 web.1 | return _bootstrap._gcd_import(name[level:], package, level) 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 2254, in _gcd_import 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 2237, in _find_and_load 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 1129, in _exec 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 1471, in exec_module 23:35:07 web.1 | file "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django_postgrespool/base.py", line 8, in <module> 23:35:07 web.1 | psycopg2 import interfaceerror, programmingerror, operationalerror 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/__init__.py", line 50, in <module> 23:35:07 web.1 | psycopg2._psycopg import binary, number, string, datetime, rowid 23:35:07 web.1 | importerror: dlopen(/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so, 2): library not loaded: libssl.1.0.0.dylib 23:35:07 web.1 | referenced from: /users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so 23:35:07 web.1 | reason: image not found 23:35:07 web.1 | 23:35:07 web.1 | during handling of above exception, exception occurred: 23:35:07 web.1 | 23:35:07 web.1 | traceback (most recent call last): 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/arbiter.py", line 507, in spawn_worker 23:35:07 web.1 | worker.init_process() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/workers/base.py", line 118, in init_process 23:35:07 web.1 | self.wsgi = self.app.wsgi() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/app/base.py", line 67, in wsgi 23:35:07 web.1 | self.callable = self.load() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 23:35:07 web.1 | return self.load_wsgiapp() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 23:35:07 web.1 | return util.import_app(self.app_uri) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/gunicorn/util.py", line 355, in import_app 23:35:07 web.1 | __import__(module) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/gettingstarted/wsgi.py", line 16, in <module> 23:35:07 web.1 | application = get_wsgi_application() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application 23:35:07 web.1 | django.setup() 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/__init__.py", line 18, in setup 23:35:07 web.1 | apps.populate(settings.installed_apps) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate 23:35:07 web.1 | app_config.import_models(all_models) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models 23:35:07 web.1 | self.models_module = import_module(models_module_name) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/importlib/__init__.py", line 109, in import_module 23:35:07 web.1 | return _bootstrap._gcd_import(name[level:], package, level) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/contrib/auth/models.py", line 41, in <module> 23:35:07 web.1 | class permission(models.model): 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/models/base.py", line 139, in __new__ 23:35:07 web.1 | new_class.add_to_class('_meta', options(meta, **kwargs)) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/models/base.py", line 324, in add_to_class 23:35:07 web.1 | value.contribute_to_class(cls, name) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/models/options.py", line 250, in contribute_to_class 23:35:07 web.1 | self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/__init__.py", line 36, in __getattr__ 23:35:07 web.1 | return getattr(connections[default_db_alias], item) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/utils.py", line 240, in __getitem__ 23:35:07 web.1 | backend = load_backend(db['engine']) 23:35:07 web.1 | file "/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/django/db/utils.py", line 129, in load_backend 23:35:07 web.1 | raise improperlyconfigured(error_msg) 23:35:07 web.1 | django.core.exceptions.improperlyconfigured: 'django_postgrespool' isn't available database backend. 23:35:07 web.1 | try using 'django.db.backends.xxx', xxx 1 of: 23:35:07 web.1 | 'base', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3' 23:35:07 web.1 | error was: dlopen(/users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so, 2): library not loaded: libssl.1.0.0.dylib 23:35:07 web.1 | referenced from: /users/janosbana/developer/playground/python/heroku/python-getting-started/venv/lib/python3.4/site-packages/psycopg2/_psycopg.so 23:35:07 web.1 | reason: image not found 23:35:07 web.1 | [2015-06-14 22:35:07 +0000] [6299] [info] worker exiting (pid: 6299) 23:35:07 web.1 | [2015-06-14 23:35:07 +0100] [6296] [info] shutting down: master 23:35:07 web.1 | [2015-06-14 23:35:07 +0100] [6296] [info] reason: worker failed boot. 23:35:07 web.1 | exited code 3 23:35:07 system | sending sigterm processes
please note have postgres (postgresql) 9.4.4 installed on osx yosemite.
i think there problem database configuration, new , find hard workout has happened debug log. have searched web trying find similar cases output of last command, did not find had exact same nature mine.
has experienced similar? please figure out it.
edit:
an additional step appeared in heroku tutorial since question asked.
run app locally step has following command now:
$ python manage.py collectstatic
this line added before step got stuck:
$ foreman start web
based on error, django.core.exceptions.improperlyconfigured: 'django_postgrespool' isn't available database backend.
, appears database setting improperly configured.
in settings file, since you're using postgresql, make sure database engine set 'django.db.backends.postgresql_psycopg2'
. see databases docs , database engine docs.
Comments
Post a Comment