我正在尝试编写具有以下结构的包
/package
setup.py
/subpackage1
subpackage1.py
__init__.py
/subpackage2
subpackage2.py
__init__.py
/utils
some_other_files_and_codes
__init__.py
我的 setup.py 目前看起来像这样:
from setuptools import setup, find_packages
setup(
name = 'subpackage1',
version = '1.0',
install_requires=['numpy',
'scipy'],
packages = find_packages(),
)
然后我使用 /package
文件夹中的 pip install -e .
安装它。
但是,我无法导入子包 2,只能导入子包 1。
我希望能够将它们导入为
from package import subpackage1
from package import subpackage2
这很重要,因为 subpackage1 和 subpackage2 在我的系统中也作为独立包存在。
有人可以帮我吗?
最佳答案
您显示的片段没有意义。看起来有误会,特别是 Python 项目的名称和顶级可导入包的名称之间可能存在混淆。
在 setuptools.setup()
函数调用中,name
参数的参数应该是项目的名称,而不是可导入的顶级包的名称.它们可以是相同的名称,但不一定。
以下可能会使它更明确:
MyPythonProject
├── my_importable_package_one
│ ├── __init__.py
│ └── my_module_foo.py
├── my_importable_package_two
│ ├── __init__.py
│ └── my_module_bar.py
└── setup.py
setup.py
import setuptools
setuptools.setup(
name='MyPythonProject',
version='1.2.3',
packages=['my_importable_package_one', 'my_importable_package_two'],
# ...
)
from my_importable_package_one import my_module_foo
from my_importable_package_two import my_module_bar
关于python - 一个包内的多个子包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59665599/