Django+;heroku-在没有';不存在
我是django新手(使用python 2.7),我只是第一次尝试使用heroku,但我总是遇到以下错误:Django+;heroku-在没有';不存在,django,heroku,import,django-registration,Django,Heroku,Import,Django Registration,我是django新手(使用python 2.7),我只是第一次尝试使用heroku,但我总是遇到以下错误: remote: -----> Preparing static assets remote: Collectstatic configuration error. To debug, run: remote: $ heroku run python manage.py collectstatic --noinput 当我运行该命令时,会显示一个关于dja
remote: -----> Preparing static assets
remote: Collectstatic configuration error. To debug, run:
remote: $ heroku run python manage.py collectstatic --noinput
当我运行该命令时,会显示一个关于django注册redux库的导入错误。我以前在Django遇到过这个问题,我将RequestSite放在“requests”下,将Site放在“models”下,从而解决了这个问题。这解决了问题,但错误仍然出现在Heroku中
(venv) C:\Users\Carolina\Desktop\Coding\venv\project1>heroku run python manage.p
y collectstatic --noinput
Running python manage.py collectstatic --noinput on acla-acla... up, run.3645
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/_
_init__.py", line 350, in execute_from_command_line
utility.execute()
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/_
_init__.py", line 324, in execute
django.setup()
File "/app/.heroku/python/lib/python2.7/site-packages/django/__init__.py", lin
e 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/registry.py"
, line 115, in populate
app_config.ready()
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/app
s.py", line 22, in ready
self.module.autodiscover()
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/__i
nit__.py", line 26, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/module_load
ing.py", line 50, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in im
port_module
__import__(name)
File "/app/.heroku/python/lib/python2.7/site-packages/registration/admin.py",
line 2, in <module>
from django.contrib.sites.models import RequestSite
ImportError: cannot import name RequestSite
这是我用pip freeze得到的,以防万一:
Django==1.9
django-crispy-forms==1.5.2
django-registration==2.0.3
django-registration-redux==1.2
django-tinymce==2.2.0
Pillow==3.0.0
requests==2.9.0
South==1.0.2
stripe==1.27.1
wheel==0.24.0
有人知道为什么会这样吗?提前谢谢
编辑--
好的,问题是丹尼尔·罗斯曼提到的。这个库在pypi中被破坏了,我不得不告诉heroku从github安装它(包是固定的)。
因此,我转到我的requirements.txt文件并替换了这一行:
django-registration-redux==1.2
关于这一点:
-e git://github.com/macropin/django-registration.git#egg=django-registration==1.2
(我还删除了'django registration==2.0.3',因为它是django registration redux的旧版本,并且产生了问题)。
希望这能帮助有同样问题的人 听起来像是您为本地安装的django registration redux副本编辑了代码。但这对Heroku没有任何影响,因为库将根据requirements.txt中的版本直接从PyPI安装
如果库真的损坏了,您需要将其分叉,并将requirements.txt指向您的固定版本。然而,看看GitHub上的代码,它实际上似乎并没有被破坏;您只需更新所指向的版本。听起来您为本地安装的django registration redux副本编辑了代码。但这对Heroku没有任何影响,因为库将根据requirements.txt中的版本直接从PyPI安装
如果库真的损坏了,您需要将其分叉,并将requirements.txt指向您的固定版本。然而,看看GitHub上的代码,它实际上似乎并没有被破坏;您只需要更新所指向的版本。在本地运行collectstatic时会发生什么?如果debug=False,静态文件不会加载(但这似乎发生在许多和我一样观看同一教程的人身上-我必须运行python manage.py runserver-他们无法正常工作)。debug=True时,一切正常。在本地运行collectstatic时会发生什么?debug=False时,静态文件不会加载(但这似乎发生在许多和我一样观看同一教程的人身上——我必须运行python manage.py runserver——这对他们的工作不安全)。debug=True时,一切正常。但我检查了版本,django registration redux 1.2似乎是最新的版本:这是我在本地使用pip安装的版本(我必须修复它):sb但我正在检查版本,django registration redux 1.2似乎是最新的版本:这是我也使用pip在本地安装的版本(我必须修复它):S
-e git://github.com/macropin/django-registration.git#egg=django-registration==1.2