问题是我无法将更改迁移到数据库,也无法进行迁移。

0 投票
1 回答
18 浏览
提问于 2025-04-14 17:40

这是错误的图片我把Python从3.8版本换成了3.12.2,一切都很好,但我无法进行迁移,不知道为什么,也没有生成迁移文件。当我运行

python manage.py make migrations时,出现了这个问题

文件 "/Users/mhaziq/Documents/codebase/abbi-backend-new/.venv/lib/python3.12/site-packages/simplified_scrapy/init.py" 的第7行,内容是

从 simplified_scrapy.simplified_main 导入 SimplifiedMain

文件 "/Users/mhaziq/Documents/codebase/abbi-backend-new/.venv/lib/python3.12/site-packages/simplified_scrapy/simplified_main.py" 的第4行,内容是

导入 threading, traceback, time, importlib, imp, os, json, io

ModuleNotFoundError: 没有名为 'imp' 的模块

不过,当我去修改名为 simplified-scrapy/simplified_main.py 的文件,把:

from imp import reload

改成

from importlib import reload

这个问题就解决了,但我觉得这样做不太好,因为修改包里的文件不是个好主意。我希望能找到一个合适的方法来解决这个问题,请帮帮我。

1 个回答

0

imp这个模块很早以前就不推荐使用了,并且在3.12版本中被移除了。

https://docs.python.org/3/whatsnew/changelog.html

Python 3.6.0 alpha 1
Release date: 2016-05-16

Library
Move the imp module from a PendingDeprecationWarning to DeprecationWarning.


Python 3.12.0 beta 1
Release date: 2023-05-22

Library
gh-98040: Remove the long-deprecated imp module.

问题似乎是出在simplified-scrapy这个库上,所以你可以在github上提个问题,或者提交一个修复的请求。3.11版本可以正常使用,当然你也可以继续用3.12版本,只要你自己做了修正。不过这样的话,你需要通过从你自己的源代码构建包来处理部署,而不是直接从pypi安装。

撰写回答