web-dev-qa-db-ja.com

python_2_unicode_compatibleエラー

私はmodels.py 次のように、

from Django.contrib.auth.models import User
from Django.db import models
from Django.utils.encoding import python_2_unicode_compatible
from Django.utils.timezone import now

@python_2_unicode_compatible
class Tag(models.Model):
    name = models.CharField(max_length=50, unique=True)

    class Meta:
            verbose_name = 'tag'
            verbose_name_plural = 'tags'
            ordering = ['name']

    def __str__(self):
            return self.name
.............  and so on

私が走ったときpython manage.py syncdbこれは私が得たエラーです:

itman@itman:~/djangoApp/mysite$ python manage.py syncdb
Traceback (most recent call last): 
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/dist-packages/Django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/dist-packages/Django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/dist-packages/Django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/python2.7/dist-packages/Django/core/management/base.py", line 231, in execute
    self.validate()
  File "/usr/lib/python2.7/dist-packages/Django/core/management/base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "/usr/lib/python2.7/dist-packages/Django/core/management/validation.py", line 30, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/usr/lib/python2.7/dist-packages/Django/db/models/loading.py", line 158, in get_app_errors
    self._populate()
  File "/usr/lib/python2.7/dist-packages/Django/db/models/loading.py", line 67, in _populate
    self.load_app(app_name)
  File "/usr/lib/python2.7/dist-packages/Django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File "/usr/lib/python2.7/dist-packages/Django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/itman/djangoApp/mysite/bmark/models.py", line 4, in <module>
    from Django.utils.encoding import python_2_unicode_compatible
ImportError: cannot import name python_2_unicode_compatible

モジュールがインポートされない理由がわかりません。 Python 2.7およびDjango 1.4を使用しています。

11
kmario23

python_2_unicode_compatible機能はDjango 1.5バージョンでのみ追加されました。

https://docs.djangoproject.com/en/dev/ref/utils/#Django.utils.encoding.python_2_unicode_compatible

7
yetty

試してみてください

from Django.utils.six import python_2_unicode_compatible

の代わりに

from Django.utils.encoding import python_2_unicode_compatible

これはDjango 1.10.6で私にとってうまく機能します

9
Desperad0

GraphiteにDjangoを使用したいときに、この問題が発生しました。 Django 1.3がインストールされていて、GraphiteバージョンがDjango> 1.5で壊れていたことが判明したため、最新バージョンの1.4ブランチをインストールすると問題が修正されました。

Sudo pip install --upgrade 'Django<1.5'
5
mre

実際には、1.4.2以降の1.4シリーズにも存在します。以前のバージョンには既知のセキュリティの脆弱性があるため、実際には最新の1.4.Xリリース(この記事の執筆時点では1.4.10)を使用する必要があります。

3
Tim Graham

最新のDjango 3.0.4、およびauditlogを試してください

from six import python_2_unicode_compatible

の代わりに

from Django.utils.six import python_2_unicode_compatible

インストールされていない場合は、以下のコードを実行します

pip install six
1
goose