现有项目的设置方式是,存储库在根文件夹中有一个__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
处于同一根文件夹的正确方法是什么?
答案 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