2016-08-30 3 views
1

bash 콘솔에서 collstatic를 사용하여 pythonanywhere의 django 응용 프로그램에서 CSS를 실행하려고합니다.ImportError : 이름을 가져올 수 없습니다. pythonanywhere

불행하게도, 나는 오류가 점점 오전 : 여기

23:49 ~/mysite/mysite $ python manage.py collectstatic                                        
Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 429, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 191, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 219, in execute 
    self.validate() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 249, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 35, in get_validation_errors 
    for (app_name, error) in get_app_errors().items(): 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 146, in get_app_errors 
    self._populate() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 64, in _populate 
    self.load_app(app_name) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 78, in load_app 
    models = import_module('.models', app_name) 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/nikk2009/mysite/mysite/polls/models.py", line 4, in <module> 
    from django.utils import timezone 
ImportError: cannot import name timezone 
23:49 ~/mysite/mysite $ 

것은 내가 잘못하지 pythonanywhere 기본적으로 장고 1.3.7을 사용입니다 경우 시간대가

import datetime 

from django.db import models 
from django.utils import timezone 

# Create your models here. 

class Question(models.Model): 
    question_text = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

    def __str__(self): 
     return self.question_text 

    def was_published_recently(self): 
     now = timezone.now() 
     return self.pub_date >= timezone.now() - datetime.timedelta(days=1)<= now 
     was_published_recently.admin_order_field = 'pub_date' 
     was_published_recently.boolean = True 
     was_published_recently.short_description = 'Published recently?' 

class Choice(models.Model): 
    choice_text = models.CharField(max_length= 200) 
    votes = models.IntegerField(default= 0) 
    question = models.ForeignKey(Question, on_delete=models.CASCADE) 

    def __str__(self): 
     return self.choice_text 
+0

Django의 어떤 버전을 pythonanywhere 서버에 있습니까? 당신은 아마도 django – elethan

답변

1

수입 된 평이다. 장고 시간대 지원은 1.4 버전까지 추가되지 않은 것 같습니다 :

https://docs.djangoproject.com/en/1.10/releases/1.4/#what-s-new-in-django-1-4

당신은 최신 버전으로 장고를 업데이트해야합니다 (또는 적어도 이전 버전) 및 모든 적어도 시간대에 (예상대로 작동합니다).

$ mkvirtualenv myenv --python=/usr/bin/python3.4 

$ pip install django 

편집 :

$ pip install --upgrade django 

또는이 virtualenv에 새로운 버전을 설치합니다 : 당신은 당신의 pythonanywhere 프로필에 콘솔에서 탭을 강타 콘솔을 열고, 다음 명령을 실행하여 업그레이드 할 수 있습니다

필자는 나의 첫 번째 제안을 테스트하여 내 pythonanywhere 계정에서 작동하도록 만들지 못했습니다 (필자는 pythonanywhere가 해당 사용자에게 제공하는 권한과 관련이 있다고 생각합니다). 그러나 두 번째 방법 (즉, virtualenv 사용)을 사용하면 Django의 최신 버전을 설치하는 데 성공했는데 여기에는 django.utils.timezone에 시간대 지원이 포함되어 있습니다.

+1

PythonAnywhere dev를 업데이트 할 필요가 있습니다 : pip를 사용하여 bash 콘솔에서 패키지를 업그레이드 할 수 있지만 "--user"플래그를 사용해야합니다. 자세한 내용은 https://help.pythonanywhere.com/pages/InstallingNewModules를 참조하십시오. 그러나 Django의 경우 장고가 잘 작동하지 않습니다 (기본적으로 이전 버전의 일부를 새로운 "통해"볼 수 있습니다). 따라서 virtualenvs를 권장합니다. https://help.pythonanywhere.com/pages/Virtualenvs를 사용하는 방법에 대한 단계별 가이드가 있습니다. –