首页 > 解决方案 > 子类化方法在虚拟环境中的站点包中显示错误

问题描述

init .py 文件在导入子类化方法中运行文件时显示错误

(env) devbase@bounce:~/env/local/lib/python2.7/site-packages/djorm_pgtrgm$ python __init__.py
Traceback (most recent call last):
  File "__init__.py", line 4, in <module>
    from django.db.models.fields import Field, subclassing
ImportError: cannot import name subclassing

我是python新手,所以如果有人能告诉我这个错误会很有帮助......谢谢!!!

from django.db import backends
from django.db import connection
from django.db import models
from django.db.models.fields import Field, subclassing
from django.db.models.query import QuerySet
try:
    # Django 1.7 API for custom lookups
    from django.db.models import Lookup
except NameError:
    from django.db.models.sql.constants import QUERY_TERMS
from django.contrib.gis.db.models.sql.query import ALL_TERMS


db_backends_allowed = ('postgresql', 'postgis')

这是我导入子类的代码的一小部分

标签: pythondjango

解决方案


您正在使用的项目正在尝试导入仅存在于 Django 版本高达 1.9 的模块。您不能在 Django 1.10 及更高版本中使用该代码。由于 1.8 和 1.9 Django 版本中的其他更改,已发布包的 0.3 版本仅适用于 Django 1.7 或更早版本。

您正在使用的特定项目的开发很久以前就停滞了。PyPI 项目的最后一个版本是 4 年前,该版本在 2016 年 3 月已经过时。源代码最后一次更新是在 2015 年跟随 Django 对 1.9 版的更改,从那时起,仅在 2016 年合并了两个次要的拉取请求。

除非您知道如何 Django 内部结构以及该项目如何详细使用它们并且可以自己更新项目,否则我会认为该项目完全死了。继续前进,忘记这个代码库。

如果您尝试将旧版 Django 项目变为现实,请确保您使用的是 Django 1.7 或更早版本。您安装的 0.3 版本的项目不能使用比它更新的任何东西。


推荐阅读