gpt4 book ai didi

python - 如何在 "no module named xyz"错误上获得更多诊断输出?

转载 作者:行者123 更新时间:2023-11-28 16:33:11 24 4
gpt4 key购买 nike

我在本地目录中有一个可以运行的 django 项目当我从本地 django 服务器运行它时很好,如

python manage.py runserver.py 8000

但是如果我克隆这个项目所在的本地 git 存储库生活(并且是最新的),像这样:

git clone my_django_project my_django_project_clone

然后我从克隆的目录中尝试上面相同的命令,服务器立即失败:

Error: No module named xyz

服务器产生根本没有其他输出,即使我运行它使用 -v 3 标志。

有没有办法获得更多关于原因的诊断信息这个(据说)工作 django 站点的相同克隆是失败了?

最佳答案

这就是我解决问题的方式

  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 时不打印嵌套异常的情况。在这种情况下,手动输入 import xyz 应该会显示真正的错误。

  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) 您正确安装了第三方软件包。 The proper way to install third party Python packages正在为您的开发项目使用带有 virtualenv 隔离 Python 环境的 pip 工具。如果您将 Python 包安装到系统范围的 Python 安装(UNIX 上的 /usr/lib/python),尤其是使用 sudo pip,结果无法保证有效。

关于python - 如何在 "no module named xyz"错误上获得更多诊断输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com