proj中的Setuptools python导入问题

2024-04-27 01:16:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图建立一个简单的项目,然后准备它创建whl文件。但是在pip install <name>.whl之后,我有一个奇怪的导入问题。 项目结构:

foo/
    /foo
        __init__.py
        main.py
        bar.py
    setup.py

在设置.py文件:

^{pr2}$

在主.py在

from bar import func2

def func1():
    print('func1')
    func2()

在棒.py在

def func2():
    print('func2')

我有一个空的初始化文件。在

我通过命令创建whl文件:python3 setup.py bdist_wheel 然后cd dist/ && pip install ...

但当我运行foo的脚本时,出现了一个错误:

ModuleNotFoundError:没有名为“bar”的模块

这个问题只存在于我把项目分成几个文件的时候,当我试图保存所有的东西主.py(已删除棒.py)如果没有进口,那它就成功了。在

你知道我该怎么修改吗setup.py?在


Tags: installpip文件项目namepyfoodef
1条回答
网友
1楼 · 发布于 2024-04-27 01:16:12

问题在于您的导入而不是您的setup.py。你的setup.py正在安装包foo,它有子模块main和{}。在

要从子模块导入函数,请执行以下操作:

from foo.bar import func2

或者,如果您正在进行与包相关的导入(例如从main导入bar):

^{pr2}$

如果执行导入的模块不是foo包的一部分,则第二个版本将无法工作。在

相关问题 更多 >