Aşağıdaki paket yapısı ile
.
├── my_package
│ └── __init__.py
├── setup.cfg
└── setup.py
İçeriği setup.py
from setuptools import setup
setup()
İçeriği setup.cfg
[metadata]
name = my_package
version = 0.1
[options]
packages = find:
Ben tekerleği veya bir kaynak dağılımını inşa edebilirsiniz my_package
gibi bu
pip wheel --no-deps -w dist .
# generates file ./dist/my_package-0.1-py3-none-any.whl
python setup.py sdist
# generates file ./dist/my_package-0.1.tar.gz
Ancak , kurulum araçlarının sürdürücüsüne göre , bildirici bir yapı yapılandırması idealdir ve zorunlu bir yapı kullanmak bir kod kokusu olacaktır. Biz değiştirmek Yani setup.py
ile pyproject.toml
:
.
├── my_package
│ └── __init__.py
├── setup.cfg
└── pyproject.toml
İçeriği pyproject.toml
[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools", "wheel"]
Ve yine de eskisi gibi bir tekerlek inşa edebilirsiniz, işe yarıyor. Ancak sdist çalışmıyor:
python: can't open file 'setup.py': [Errno 2] No such file or directory
Peki setuptools kullanarak .tar.gz dosyasını nasıl oluşturmalısınız ? Sdist oluşturmak için kullanıcıya bakan araç nedir? Yapı arka ucunu değiştirmek istemiyorum. Diğer paketleme araçlarının hepsi kendi derleme giriş noktalarını yazıyor gibi görünüyor, ancak meta verilerdeki bir bildirici derleme sistemini tanımlamanın tümünün, derleme sistemi ile pratik olmanız gerekmediğini, farklı paketleme aracı çağrılmayı veya yorumlayıcıya girmeyi ve bir Python API'sını manuel olarak çağırmayı bekler. Ancak derleme sistemi gereksinimleri için PEP şimdi 2 yıldan daha eski. Burada bariz bir şey mi kaçırıyorum?
setup.py
Dosya kullanmadan kaynak dağıtımı nasıl yapılır ?
pep517.build
sadece bir deney, geçici bir koltuk değneği anlamına gelen odaklanma , şiir, kapak ve muhtemelen daha fazlası gibi üretken araçlar olduğunda odaklanın ?