我试图运行一个Django项目,我试图从guardian.shortcuts
导入assign_perm
和remove_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
字符串
2条答案
按热度按时间9bfwbjaz1#
ModuleNotFoundError
,此错误通常在Python环境中未安装所需的包时发生。要解决此问题,请执行以下步骤:
1.确认你已经安装了Django Guardian:运行以下命令安装
django-guardian
包:字符串
确保你使用的是安装Django和其他包的Python环境。
1.检查你的Python环境:确保您使用的是安装了Django和Django Guardian的正确Python环境。有时,如果你有多个Python环境或虚拟环境,你可能会使用错误的环境。您可以通过运行以下命令来检查当前的Python环境:
型
这将显示您的环境中安装的Python版本。
1.查看Django Guardian版本:确保您使用的Django Guardian版本支持
assign_perm
和remove_perm
函数。在过去,assign
和remove_perm
函数可用,但后来的版本用assign
和remove
取代了它们。对于2.0.0及以上版本,请用途:
型
对于2.0.0之前的版本,请用途:
型
使用以下命令仔细检查已安装的版本:
型
1.重新启动应用程序:在确保您已经安装了Django Guardian并使用了基于版本的正确导入后,重新启动Django项目或服务器以应用更改。
如果您已经遵循了这些步骤,但仍然遇到问题,请仔细检查您的Python环境,安装的软件包,并确保使用正确的版本。
eit6fx6z2#
emmmmm其实我不知道为什么,我只是用
pip3
卸载guardian
和Django-guardian
,并重新安装Django-guardian
和它的工作。我发现assign_perm
和assign
都可用于Django-guardian2.4.0
,但只有remove_perm
(而不是remove
)可用于此版本。如果你在这个问题上挣扎,上面的解决方案仍然不能帮助你,你可以试试我的解决方案。希望这能帮到你。