pip install本地python项目并自动安装本地子项目

问题描述 投票:0回答:1

我正在尝试安装我正在处理的本地Python项目:

pip install -e .

我正在尝试使用此处详细介绍的自动发现:https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#automatic-discovery

我的代码按照链接中所述的“临时”布局进行布局

project_root_directory
├── pyproject.toml  # AND/OR setup.cfg, setup.py
├── ...
└── mypkg/
    ├── __init__.py
    ├── ...
    ├── module.py
    ├── subpkg1/
    │   ├── __init__.py
    │   ├── ...
    │   └── module1.py
    └── subpkg2/
        ├── __init__.py
        ├── ...
        └── module2.py

我的顶级 setup.py:

from setuptools import setup,find_packages

setup(
    name = "Code", #must match the actual folder name.  
    author = "Me",
    author_email = "Me",
    description = ("Code"),
    packages=find_packages(where='mypkg'),
    python_requires='>=3.6',     
    
)

我不希望将一些子目录作为软件包的一部分,但我没有将

__init__.py
放入其中。

如果我不指定packages行,或者将“where”参数留空,则包会成功构建并可以导入,但除了默认的包函数之外,里面没有任何内容。如果我将其保留为上面代码中的样子,则会出现以下错误:

error: package directory 'subpkg1' does not exist

导致错误的子包目录确实存在于正确的位置,有自己的

__init__.py
,甚至不是目录中按字母顺序排列的第一个文件或文件夹。

有人知道会发生什么吗?我想对 pip 运行一个顶级调用来安装该包,并将其下面的所有子包安装为我可以点索引访问的子包。

python setuptools
1个回答
0
投票

解决方案:

添加

package_dir={"","mypkg"}
解决了问题,现在它可以自动查找模块。有趣的是,它似乎仍然无法自动完成选项卡,但可以通过
from mypkg.subpkg1 import module1

进行索引
© www.soinside.com 2019 - 2024. All rights reserved.