2016-08-30 6 views
1

bashコンソールでcollectstaticを使用して、pythonanywhereのdjangoアプリケーションでCSSを実行しようとしています。ImportError:name timezoneをインポートできません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はデフォルトでDjangoの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

あなたのPythonanywhereサーバーにあるDjangoのバージョンは?あなたはおそらく、django – elethan

答えて

1

輸入されるの.pyです。 Djangoのタイムゾーンのサポートはバージョン1.4になるまで添加しなかったように見えます:

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

あなたが最新のバージョンにはDjangoを更新する必要があります(あるいは少なくともそれ以前のバージョン)と、すべてが少なくともタイムゾーンで(期待通りに動作するはずです)。あなたのpythonanywhereプロフィール上コンソールタブからbashのコンソールを開き、コマンドを実行することでアップグレードできます。

$ pip install --upgrade django 

それともvirtualenvに新しいバージョンをインストールします。

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

$ pip install django 

編集:

私は最初の提案をテストして、pythonanywhereアカウントで動作させることができませんでした(pythonanywhereがユーザーに与える権限と関係していると思います)。しかし、第2の方法(すなわち、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を使用するためのステップバイステップのガイドがあります。 –

関連する問題