Heroku推送被拒绝(Django应用)
问题描述:
我正在部署一个Django应用到GitHub和Heroku。
我已经第一次部署它GitHub上,删除(把它在的.gitignore文件)“settings.py”,而现在,我试图把它推到Heroku的,我得到一个错误:Heroku推送被拒绝(Django应用)
ImportError: No module named settings
remote:
remote: ! Error while running '$ python manage.py collectstatic --noinput'.
remote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
remote:
remote: ! Push rejected, failed to compile Python app
我该如何避免将某些文件推送到GitHub,但同样有可能将其推送到Heroku?
UPDATE:
我试图保持settings.py和temp_settings.py独立的,但现在的应用程序不工作了。这就是回溯,当我尝试运行在本地服务器:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 303, in execute
settings.INSTALLED_APPS
File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in __getattr__
self._setup(name)
File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 44, in _setup
self._wrapped = Settings(settings_module)
File "/home/stefano/projects/blog-project/blogprojectenv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 92, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/stefano/projects/blog-project/blogproject/settings.py", line 104, in <module>
DATABASES['default'].update(db_from_env)
NameError: name 'DATABASES' is not defined
看来settings.py不能“达到” temp_settings.py,因为我所有的数据库设置剪切粘贴temp_settings。那是错的吗?
答
通常的做法是不要忽略代码库中的settings.py文件。相反,这样做:
try:
from temp_settings import *
except ImportError:
pass
在settings.py文件的末尾,并添加temp_settings.py到的.gitignore
对于您需要保密的,使用temp_settings凭据。
我会试试看,谢谢。 –
我试过了,当推送到GitHub时,“settings.py”上的_private_凭证位于标签之间,如下所示:“
这与私人凭证无关;这是git中一个糟糕的合并的结果。你需要修复它。 –