现有项目的设置方式是存储库在根文件夹中具有__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
比包文件夹高一级并从那里安装。如果我pip install .
,这很好用,但不幸的是,此解决方案在可编辑模式下不起作用,因为我在安装后删除了临时文件夹。
问:创建在可编辑模式下工作并与包__init__.py
位于同一根文件夹中的正确setup.py
的正确方法是什么?
对于可编辑的安装,这似乎是不可能的。据我所知,最接近的如下:
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',
},
)
更新
有关如何在可编辑或开发模式下使用此类项目的想法,请参阅以下内容:https://stackoverflow.com/a/58429242/11138259