假设您有一个带有 src-layout 的 Python 包,如下所示:
package_folder
...
project.toml
/src
/package
__init__.py
/models
__init__.py
_model_1.py
...
文件
_model_1.py
包含一个类Model1
。安装 package
后,我想将 Model1
导入为from package.models import Model1
。例如,在 sklearn 中,您将 MDS
导入为from sklearn.manifold import MDS
,尽管 MDS 是 sklearn/manifold/_mds.py
中的一个类。我用 __all__
指定要导入的类,如 here:
## /src/package/models/__init__.py
from ._model_1 import Model1
__all__ = ["Model1"]
但是,它并没有按预期工作,因为它工作的唯一方法是导入为
from package.moldels._model_1 import Model1
。我尝试仅使用 setuptools TOML。我怎样才能做到这一点?
提前致谢!
这是我当前使用的
project.toml
:
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "package"
version = "0.1"
[tool.setuptools.packages.find]
where = ["src"]
删除
[tool.setuptools.packages.find]
where = ["src"]
并添加
[tool.setuptools]
package_dir = {"": "src"}
解决了问题。 (为什么?)