数据库迁移时出现:ImportError: DLL load failed while importing _rust: 找不到指定的程序。错误解决问题思路
当在虚拟环境中下载完成依赖,进行数据库迁移时
python manage.py makemigrations
出现了该错误,分析整体报错信息我们发现
当执行 _rust 时,出现了找不到制定程序的错误,而 _rust 出现在了cryptography这个软件包中,由此可得,cryptography软件包是问题的根源。
而 DLL load failed 这类错误,主要的出现原因是python版本与软件包版本不兼容,所以,我们的纠错思路则是更改cryptography软件包的版本。
第一步:
查看 cryptography软件包的版本
pip list
找到 cryptography ,可以看到,我的版本为42.0.8,这是一个相对较新的版本,而我的python版本为3.9.0,可以通过以下代码查看python版本
python -v
接下来,就需要对该软件包进行版本降级
第二步:
删除当前版本的 cryptography软件包
pip uninstall cryptography
第三步:
找到兼容自己python版本的cryptography 版本,python3.9.0版本可兼容的cryptography版本为41版本,下载该版本的cryptography软件包
pip install cryptography==41.0.2
第四步:
运行数据库迁移
python manage.py makemigrations
python manage.py migrate
若依旧还是该问题,则根据以上思路进行解决。