如何在“没有名为xyz的模块”错误的情况下获得更多诊断输出?

如何在“没有名为xyz的模块”错误的情况下获得更多诊断输出?,第1张

如何在“没有名为xyz的模块”错误的情况下获得更多诊断输出?

这就是我要解决的问题

  1. 启动交互式Python提示

     python -vvv   # -vvv notes to print out import trace information
  2. 类型

     import xyz

如果此方法有效,则表明该模块是有效的Python安装。如果它不适用于Django,则可能是循环导入和Django初始化代码本身存在问题。Django在读取

settings.py
文件,扫描所有Django应用程序等方面做了很多幕后的魔术,因此循环导入通常是Python无法加载模块的情况。同样,在这种情况下,Django吞并了原始
importError
异常,并且在初始化Django时出现错误时却没有打印嵌套异常。在这种情况下,手动键入
importxyz
应该可以显示真正的错误。

  1. 如果模块加载失败,则接下来要输入
    import sys

    for p in sys.path: print(p) # print p for Python 2.x

这将显示Python引入模块的所有目录。您的模块可能不在这些目录中,因此您需要确保

A)您将自己的模块附加到Python sys.path列表中,或正确使用PYTHONPATH环境变量来加载您自己的包。设置路径可能取决于Django版本,Python版本以及Django运行方式。例如,

manage.py
可能包含或可能不包含运行命令的当前工作目录。如果模块在当前文件夹中,则可以尝试以下 *** 作:

   PYTHonPATH=. python manage.py runserver

B)您正确安装了第三方软件包。安装第三方Python软件包的正确方法是在开发项目中使用

pip
带有
virtualenv
独立Python环境的工具。如果将Python软件包安装到系统范围的Python安装(
/usr/lib/python
在UNIX上),尤其是使用
sudopip
,则不能保证结果能正常工作。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5647015.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存