猿问

Python-与setup.py一起安装时,程序包无法导入子程序包

我开发了一个python包,希望在另一个项目中使用。程序包的结构类似于以下示例:


- foo

  - setup.py

  - README.md

  - foo

    - __init__.py

    - main.py

    - bar.py

    - sub_pkg1

       - __init__.py

       - example.py

    - sub_pkg2

       - __init__.py

       - example2.py

该bar.py文件包含了Bar哪些依赖于文件级轿车sub_pkg1和sub_pkg2中导入的


from sub_pkg1 import example.py

这些__init__.py文件只是将每个python文件导入其目录中。例如,__init__.py的sub_pkg1:


from example import ExampleClass

该main.py文件仅导入Bar类并执行其一些方法。


from bar import Bar

bar = Bar()

bar.foo()

该setup.py文件如下所示:


from setuptools import setup, find_packages


setup(

    name='Bar',

    version='0.0.7',

    author='me',

    packages=find_packages()

)

当我main.py直接从包中运行文件时,它就像一个超级按钮。但是,当我使用以下命令使用pip将其安装到我的其他项目中时:(我现在还不想将软件包发布到PyPi,而只想将开发版本包含在我的其他项目中)


pip install -e /path/to/package

并尝试导入它-我收到错误消息:


ModuleNotFoundError: No module named 'example'

我是否需要以某种方式导出sub_packages?


我使用Python 3.6


慕村9548890
浏览 295回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答