django ModelNotFoundError:没有名为“guardian.shortcuts”的模块

uz75evzq  于 2023-08-08  发布在  Go
关注(0)|答案(2)|浏览(136)

我试图运行一个Django项目,我试图从guardian.shortcuts导入assign_permremove_perm(代码列在这里:from guardian.shortcuts import assign_perm, remove_perm)。
并得到一个错误:ModuleNotFoundError: No module named 'guardian.shortcuts'
我用的是Python 3.8.9和Django2.0.7。我已经成功安装了守护者(0.2.2)和Django-guardian(2.4.0),我可以直接成功导入守护者。请帮我弄清楚。谢谢!
P.S.我尝试print(guardian.__file__),输出如下:

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/guardian/__init__.py

字符串

9bfwbjaz

9bfwbjaz1#

ModuleNotFoundError,此错误通常在Python环境中未安装所需的包时发生。
要解决此问题,请执行以下步骤:
1.确认你已经安装了Django Guardian:运行以下命令安装django-guardian包:

pip install django-guardian

字符串
确保你使用的是安装Django和其他包的Python环境。
1.检查你的Python环境:确保您使用的是安装了Django和Django Guardian的正确Python环境。有时,如果你有多个Python环境或虚拟环境,你可能会使用错误的环境。您可以通过运行以下命令来检查当前的Python环境:

python --version


这将显示您的环境中安装的Python版本。
1.查看Django Guardian版本:确保您使用的Django Guardian版本支持assign_permremove_perm函数。在过去,assignremove_perm函数可用,但后来的版本用assignremove取代了它们。
对于2.0.0及以上版本,请用途:

from guardian.shortcuts import assign, remove


对于2.0.0之前的版本,请用途:

from guardian.shortcuts import assign_perm, remove_perm


使用以下命令仔细检查已安装的版本:

pip show django-guardian


1.重新启动应用程序:在确保您已经安装了Django Guardian并使用了基于版本的正确导入后,重新启动Django项目或服务器以应用更改。
如果您已经遵循了这些步骤,但仍然遇到问题,请仔细检查您的Python环境,安装的软件包,并确保使用正确的版本。

eit6fx6z

eit6fx6z2#

emmmmm其实我不知道为什么,我只是用pip3卸载guardianDjango-guardian,并重新安装Django-guardian和它的工作。我发现assign_permassign都可用于Django-guardian2.4.0,但只有remove_perm(而不是remove)可用于此版本。如果你在这个问题上挣扎,上面的解决方案仍然不能帮助你,你可以试试我的解决方案。希望这能帮到你。

相关问题