У меня есть проектная архитектура, и я хочу сделать my_package
pip доступным для установки. Проект содержит не только материал для упаковки, но и простые сценарии (быстрый и грязный) и другие вещи, которые важны для моего проекта, но не для пакета (например, внешние данные).
my_project
├── code
│ ├── data #<-- I don't want to package this
│ │ └── make_dataset.py
│ ├── script #<-- I don't want to package this
│ │ └── make_experiment.py
│ └── my_package #<-- This is the module I want to package
│ ├── core.py
│ ├── utils.py
│ └── __init__.py
├── data
│ └── some_data.txt
├── references
│ └── reference_paper.pdf
├── reports
│ └── report.tex
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py
Я бы хотел, чтобы файл setup.py
находился в каталоге верхнего уровня, чтобы люди могли сделать обычный
git clone gitinstance.com/my_project
cd my_project
pip install .
и установить my_package
модуль в своей среде, чтобы они уже могли python -c import my_package; print(my_package.__version__)
и это работает.
Вопрос: Как я могу сделать my_package
pip-installable без помещения setup.py
в каталог code
?
Обычноsetup.py
будет выглядеть так:
from setuptools import find_packages, setup
setup(
name='my_package',
packages=find_packages(),
version='0.1.0',
description='Research project',
author='Name',
license='MIT',
)
Но здесь это не сработает, потому что setup.py
не может найти my_package
.