在与__init__.py相同的根文件夹中创建可编辑的包setup.py

时间:2019-10-14 10:55:51

标签: python setuptools setup.py

现有项目的设置方式是,存储库在根文件夹中有一个__init__.py。我想在存储库中创建一个setup.py,所以这将是结果项目结构:

project-master/
├── __init__.py
├── setup.py
└── submodule1
    ├── code.py
    └── __init__.py
└── submodule2
    ├── code.py
    └── __init__.py

您应该能够:

git clone project.url
cd project-master
pip install -e .
from project.submodule1 import ...

我尝试了一种骇人听闻的解决方案,该解决方案是将内容临时复制到子文件夹中,以使setup.py从package文件夹上移一层并从那里安装。如果我pip install .,此方法效果很好,但是很遗憾,此解决方案在可编辑模式下不起作用,因为我在安装后删除了该临时文件夹。

问题:创建合适的setup.py并以可编辑方式工作并且与软件包__init__.py处于同一根文件夹的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

对于可编辑的安装,这似乎是不可能的。据我所知,最接近的是:

project-master/
├── __init__.py
├── setup.py
└── submodule1
    └── __init__.py
#!/usr/bin/env python3
import setuptools
setuptools.setup(
    name='ProjectMaster',
    version='0.0.0.dev0',
    packages=['project', 'project.submodule'],
    package_dir={
        'project': '.',
        'project.submodule': './submodule1',
    },
)

更新

有关如何在可编辑 develop 模式下使用此类项目的想法,请参见以下内容:https://stackoverflow.com/a/58429242/11138259