gpt4 book ai didi

python - python中这个包结构有什么问题?

转载 作者:行者123 更新时间:2023-11-30 22:34:04 28 4
gpt4 key购买 nike

我有以下结构:

/MyApp
/Module_A
__init__.py
serviceFile.py
/Module_B
clientFile.py

我正在尝试从 ClientFile.py 调用 ServiceFile.py 中的函数

From MyApp.Module_a import ServiceFile

但我收到错误

ImportError: No module named MyApp.Module_a

为什么?顺便说一句,当我从 pyCharm 运行它时,它仅在 CDM 中工作正常。两者都使用 python 2.7

最佳答案

可能有 2 个错误来源。第一个,就像 @TomCho 已经指出的那样,是 __init__.py 文件是否在模块中不正确。然而,由于它在 PyCharm 中工作,我猜它是第二个。

第二个是您的 PYTHONPATH 变量设置不正确。 python 默认情况下会在很多地方查找模块。这包括 Python 安装目录和当前工作目录等位置。要查看 Python 所查找位置的完整列表,请执行以下操作:

import sys
print(sys.path)
然后,Python 将深入到每个包含 __init__.py 文件的目录,这就是该文件如此重要的原因。但是,很可能您没有将代码放入 Python 所查找的默认位置。这就是 PYTHONPATH 环境变量的全部用途。您将其设置为包所在路径的列表,然后将它们添加到上面看到的 sys.path 中。

默认情况下,PyCharm 会将您的项目目录添加到 PYTHONPATH,这就是为什么我猜测它可以在 PyCharm 中工作,但不能在命令行上工作。

要在 Linux 中设置 PYTHONPATH,请转到命令行并键入

export PYTHONPATH=/path/to/python/module

如果您需要添加多个路径,则可以继续附加 :,因此更一般的情况是

export PYTHONPATH=$PYTHONPATH:/path/to/python/module

你可以继续这样做。我通常将该行添加到我的 ~/.bashrc 文件中。

如果您使用的是 Windows,modifying environment variables有所不同,但仍然很容易。

关于python - python中这个包结构有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44961486/

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