Я пытаюсь узнать, как создать пакет исходного кода Python с помощью setuptools. Я думал, что понял, что пакет - это каталог, содержащий файл __init__.py
, а модули в этом пакете - это просто исходные файлы Python в этом каталоге. Следовательно, при упрощении моя директория разработки выглядит как
.
├── newFile.py
├── OldCode
│ ├── testPackage2.py
│ └── testPackage.py
├── package
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
├── README.md
├── setup.py
├── test.f90
├── testPackage.py
└── .git/
где package
содержит модули моего пакета. Кажется, моя проблема возникает из-за того, что я хочу отправить package/module1.py
и package/module1.py
, но у меня также есть git-репо, которое содержит эти файлы, а также другие файлы .py в дереве выше (которое я использую для разработки и тестирования пакет), и даже исходный файл Fortran. Кроме того, в моей (Gentoo) системе установлен пакет setuptools_scm
в дополнение к setuptools
.
Мне потребовалось несколько часов, чтобы выяснить, что при запуске ./setup.py sdist
будет просто игнорироваться любая конфигурация, которую я ввожу в setup.py
(без предупреждения), даже если я import setuptools
, а не setuptools_scm
. В setuptools.setup
я попытался установить packages, package_dir, py_modules
и use_scm_version=False
, но ни один из них не сработал. Есть ли способ (кроме взлома моей системы принудительным удалением пакета зависимостей setuptools_scm
) сказать setup.py
игнорировать мой репозиторий git, а не себя? (Я пробовал exclude *
в Manifest.in
, но тогда даже setup.py
исключается.)