我遵循“Getting Started with Python on Heroku”官方教程。我认为本教程基本上是关于建立一个Django Hello World,尽管我还没有看到结果。在
$ git clone https://github.com/heroku/python-getting-started.git
$ heroku create
$ git push heroku master
最后一个命令的输出(我认为是重要的部分):
^{pr2}$进一步命令:
$ heroku ps:scale web=1
$ heroku open
然后使用以下行定义Procfile:
web: gunicorn gettingstarted.wsgi --log-file -
然后创建了一个virtualenv(尝试使用python2.7.6。和3.4.2):
$ virtual venv
$ source venv/bin/activate
$ pip install -r requirements.txt --allow-all-external
第一次我在psycopg2-2.6上遇到了问题,我相信我成功地安装了它。以下是所有要求: -dj数据库url==0.3.0 -Django==1.8.1 -django postgrespool==0.3.0 -古尼康==19.3.0 -心理2==2.6 -SQLAlchemy==1.0.4 -白噪声==1.0.6
foreman start web
从该项目结构的主目录调用:
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
最后一个命令的输出是:
23:35:07 web.1 | started with 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 with 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 | from 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 | from 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 the above exception, another 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 an available database backend.
23:35:07 web.1 | Try using 'django.db.backends.XXX', where XXX is one 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 | from 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 | from 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 the above exception, another 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 an available database backend.
23:35:07 web.1 | Try using 'django.db.backends.XXX', where XXX is one 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 to boot.
23:35:07 web.1 | exited with code 3
23:35:07 system | sending SIGTERM to all processes
请注意,我已经在OSX Yosemite上安装了postgres(PostgreSQL)9.4.4。在
我认为数据库配置有一些问题,但是我对这个很陌生,并且发现很难从调试日志中找出发生了什么。 我在网上搜索过,试图找到类似的情况下,最后一个命令的输出,但我没有找到任何与我完全相同的性质。在
有人有过类似的经历吗?请帮我想想该怎么办。在
编辑:
Heroku教程中出现了另外一个步骤,因为有人问了这个问题。在
Run the app locally步骤现在有以下命令:
$ python manage.py collectstatic
在我被卡住的那一步之前加了一行:
$ foreman start web
根据您的错误
django.core.exceptions.ImproperlyConfigured: 'django_postgrespool' isn't an available database backend.
,您的数据库设置似乎配置不正确。在在设置文件中,由于使用的是postgresql,请确保将数据库引擎设置为
'django.db.backends.postgresql_psycopg2'
。请参见数据库docs和数据库引擎docs。在相关问题 更多 >
编程相关推荐