Я считаю, что этот вопрос был спрашивал раньше, но я все еще немного застрял. Я пытаюсь установить пакет Python, в котором есть файлы данных с подкаталогами. Вот моя установка:
setup.py
src/
mypkg/
__init__.py
module.py
data/
tables.dat
spoons.dat
sub/
forks.dat
После документы я попытался добавить:
setup(...,
packages=['mypkg'],
package_dir = {'mypkg': 'src/mypkg'},
package_data = {'mypkg': ['data/*.dat', 'data/sub/*.dat']},
)
Я устанавливаю модуль с помощью python setup.py install (хотя в конечном итоге я буду использовать python setup.py sdist upload для загрузки пакета в pypi, чтобы другие могли pip install модуль.
После выполнения команды python setup.py install, чтобы найти местоположение модуля, я затем import mypkg и print(mypkg.__file__). Однако в каталоге пакетов я вижу data, но не data/sub. Кто-нибудь знает, что мне не хватает? Любая помощь приветствуется!
Любопытный. Возможно, я не пытаюсь правильно получить файлы пакета - учитывая приведенную выше настройку, как мне получить файлы в data/sub/*.dat @hoefling
Ах, вы совершенно правы @hoefling, спасибо за заметку!
Хорошо, не уверен, что помог, но рад слышать, что проблема решена :-)






А, оказывается, все вышеперечисленное прекрасно работает!
Чтобы установить модуль в мое site-packages/mypkg местоположение, мне просто нужно было использовать: python setup.py sdist, а затем pip install dist/mypkg-0.0.1.tar.gz.
Тогда мои файлы данных были в site-packages/mypkg.
У меня была такая же проблема, в моем случае проблема заключалась в том, что пакет был установлен и при выполнении
pip install .
в моем локальном он не переустанавливался, поэтому пакеты не были включены.
Удаление перед установкой было для меня ключом
Невозможно воспроизвести, так как спецификация
package_dataв полном порядке — файлы включены вinstall,sdist,bdist_wheel, а также в другиеpip install. Может быть, что-то кэшированное?