用作软件包时找不到Python模块错误

时间:2020-09-12 05:30:23

标签: python

我有两个python文件,分别是abc.pyxyz.py

abc.py包含两个functionfunc_1()func_2()

我的目录结构如下

db_ops /
   __init__.py
  abc.py
  xyz.py

现在xyz.py中,我具有以下导入方法

from db_ops.abc import func_1

运行xyz.py时出现错误消息

ModuleNotFoundError: No module named 'db_ops'

我错过了什么吗?

P.S。我正在使用Windows 10

2 个答案:

答案 0 :(得分:1)

您不需要软件包,因为所有代码都在同一目录中。

由于xyz和abc位于同一目录中,因此只需使用from abc import func_1

答案 1 :(得分:0)

好,所以我找到了所面临问题的答案。 我们需要在dir pathabc.py所在的位置添加xyz.py

假设我们具有如下所示的广泛目录结构

etl_works/
db_ops 
__init__.py/
 __init__.py
 abc.py
 xyz.py

etl_works目录如下

'D:/my_py/etl_works'

然后我们需要将以上内容添加到sys.path,即

import sys
sys.path.append('D:/my_py/etl_works')

然后我们可以使用import db_opsfrom db_ops import abc

注意:

上述方法不是永久解决方案。每次我们关闭程序或内核时,path.append方法都会被颠倒。为了避免这种情况,我们只需将上述目录路径添加到PYTHONPATH(在Windows 10系统中,我们将路径添加到环境和系统属性)

希望这对像我这样的新手有帮助!