gpt4 book ai didi

Python3导入错误

转载 作者:行者123 更新时间:2023-12-01 05:41:48 25 4
gpt4 key购买 nike

我一直对 Python 3 与 Python 2 关于导入的区别感到困惑。

如果我有这样一个目录...

module_test/ ->
a/hello.py
lib/mad.py

我想从 lib/mad.py 导入 hello 模块

所以我写了这样的代码..

lib/mad.py

import a.hello

我调用 python lib/mad.py ,但发生了 ImportError。

不知道为什么会这样。

你有什么想法吗?我想解决这个问题。

示例存储库是 https://github.com/okamurayasuyuki/module_test/tree/master/lib 。 ##提前致谢。

最佳答案

您的问题是,通过从 module_test 目录运行 mad.py,您猜测 Python 会使用您当前的目录作为查找模块 b< 的基础。要证明它不起作用,请执行以下操作:

  1. 编辑您的 mad.py 脚本并将以下内容添加到脚本的开头:

    import sys
    print(sys.path)
    exit()

    这只会打印 Python 用于查找您尝试导入的模块然后退出的搜索路径。

  2. 打开终端,转到文件夹 /module_test 并运行以下命令:

    > python lib/mad.py

    现在您应该看到转储到终端的路径。请注意,列表中的第一个条目是文件夹“module_test/lib”,而不是您想象的“module_test”。

那么,你是如何解决这个问题的呢?

简单:您只需告诉 Python 应该使用正确的目录来查找您的模块。为此,您必须设置 PYTHONPATH 环境变量:

> export PYTHONPATH=$PYTHONPATH:/path/to/module_test

现在,如果您尝试运行脚本,它应该按预期导入 a.hello!

<小时/>

PS:你应该阅读官方的Python教程,特别是第6章,它解释了模块和包的概念:

http://docs.python.org/3/tutorial/modules.html

这应该让您有基本的了解并帮助您解决问题。

关于Python3导入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347202/

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