Это выглядит очень похоже на этот вопрос , но это не совсем.
Ответы на этот вопрос охватывают, как получить дополнительные данные в исходный и двоичный дистрибутивы,но на самом деле не рассматривается, как получить данные пакета установлен при включении в исходный дистрибутив, или как их установить в файле wheel.
Вот пример того, что я имею в виду (python 3.7.4):
% ls
MANIFEST.in README.txt foopackage setup.py venv
% cat setup.py
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
setup(
name='foopackage',
version='0.0.1',
description='A Package Full of Foo',
packages=find_packages(),
package_data={
'foopackage': [
'README.txt',
],
},
include_package_data=True,
)
% cat MANIFEST.in
include README.txt
% . venv/bin/activate
(venv)
% python setup.py sdist bdist_wheel
[...]
% ls dist
foopackage-0.0.1-py3-none-any.whl foopackage-0.0.1.tar.gz
(venv)
% unzip -v dist/foopackage-0.0.1-py3-none-any.whl| grep README.txt
(venv)
% tar tvzf dist/foopackage-0.0.1.tar.gz| grep README.txt
-rw-r--r-- 0 matt staff 0 8 Nov 17:21 foopackage-0.0.1/README.txt
(venv)
% deactivate
% cd ../foo
% . py/bin/activate
(py)
% pip install ../foopackage/dist/foopackage-0.0.1.tar.gz
Processing ../foopackage/dist/foopackage-0.0.1.tar.gz
Installing collected packages: foopackage
Found existing installation: foopackage 0.0.1
Uninstalling foopackage-0.0.1:
Successfully uninstalled foopackage-0.0.1
Running setup.py install for foopackage ... done
Successfully installed foopackage-0.0.1
You are using pip version 19.0.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(py)
% find . -name README.txt
(py)
%
Файл README.txt
не включен в wheel
, и, несмотря на то, что он включен в файл sdist
, он не устанавливается при установке этого пакета.
Я не могу найти волшебное заклинание, чтобы заставить setuptools фактически установить этот файл где-нибудь. Чего мне не хватает?
Я, вероятно, должен указать, что реальный пакет, который я собираю, должен быть совместимым с py27 и py34 +, на случай, если это каким-либо образом ограничивает решение.