问题是我无法将更改迁移到数据库,也无法进行迁移。
我把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 个回答
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安装。