【问题标题】:How To Change A Third Party App's Models.py Due To Invalid Import如何因导入无效而更改第三方应用程序的 Models.py
【发布时间】:2020-06-30 02:31:31
【问题描述】:

我正在尝试将django-messages 添加到我的应用程序,但是当我将其添加到我的installed apps 时出现此错误

ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding' (C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\utils\encoding.py)

我查看了这个错误,显然它是由 Django-Messages models.py 中的这一行引起的

from django.utils.encoding import python_2_unicode_compatible

要修复它,我应该将其更改为

from django.utils.six import python_2_unicode_compatible

由于这是第三方应用程序,我应该如何更改此行?

我是否应该将文件结构复制到我自己的项目中(在我的应用程序中创建一个 django-messages 文件夹,然后在其中创建一个 models.py 文件)并将整个 models.py 复制/粘贴到那里然后更改行?这似乎是错误的,但我不知道如何解决它。

或者它使用过时的导入这一事实是否意味着该应用没有维护,因此根本不应该使用?

谢谢。

【问题讨论】:

    标签: django django-apps django-messages


    【解决方案1】:

    我可以建议两个选项。首先,您可以在 GitHub 上克隆它(即下载所有文件),然后将其粘贴到您的项目文件夹中(连同您的其他应用程序)。然后您可以进行任何您希望的更改。当然,它是否会起作用还有待观察,因为可能还有其他问题。它似乎与 Django 1.11 - 2.2 兼容。但我认为这比自己做这件事更好。除非您能找到适合您需求的其他应用。

    其次,假设您使用的是虚拟环境,您可以导航到所有软件包的安装位置。我不确定它的位置,但它应该类似于envs\<name of env>\Lib\site-packages。您可以在那里进行任何您希望的更改 - 只需搜索相关文件。

    希望这会有所帮助。

    【讨论】:

    • 谢谢。我喜欢您将整个应用程序克隆到我的项目文件夹中的第一个建议,因为这可以让我完全控制,但是这是一种好的做法吗?我的印象是不鼓励这样做,因为创建者对应用程序所做的错误修复/安全更新不会实施到我的应用程序版本中?谢谢。
    • 嗯,是的,我想这取决于应用程序是否维护?如果它不再被维护,那么将不会有任何错误修复......但我想因此第二个选项会更好。
    猜你喜欢
    • 2016-07-08
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多