【问题标题】:Python packaging: subdirectories not installedPython打包:未安装子目录
【发布时间】:2017-09-01 09:31:23
【问题描述】:

我有一个带有布局的 Python 项目

setup.py
foobar/
    __init__.py
    foo.py
    bar/
        __init__.py

foobar/__init__.py 读取的位置

from . import foo
from . import bar

setup.py

from setuptools import setup

setup(
    name='foobar',
    version='0.0.1',
    packages=['foobar'],
    )

从源目录执行import foobar 时,一切正常。但是,通过pip install . 安装包时,子文件夹bar/没有安装,导致导入错误

ImportError: cannot import name bar

有什么提示吗?

【问题讨论】:

标签: python setuptools packaging setup.py


【解决方案1】:

显然要包含子包,你需要find_packages()

from setuptools import setup, find_packages

setup(
    name='foobar',
    version='0.0.1',
    packages=find_packages()
    )

the setuptools docs 也建议这样做。

【讨论】:

  • find_packages() 安装子目录,但导入仍然失败。
  • 这里也一样,安装了子目录,但是不能导入。在某个时候找到了答案?
猜你喜欢
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 2011-05-07
  • 2018-08-29
  • 1970-01-01
  • 2022-11-22
  • 2021-07-07
  • 1970-01-01
相关资源
最近更新 更多