включая папку и файлы внутри пакета Python - PullRequest
2 голосов
/ 25 марта 2019

Я пытаюсь сделать пакет Python, и у меня уже есть большинство настроек, когда я пытаюсь установить библиотеку из Github здесь , она устанавливает все, кроме папки с именем champs и это файлы

Это моя структура каталогов файлов

LeagueYue
   champs
      -Lname_num.json
      -Lname_Uname.json
      -num_Uname.json
   -__init__.py
   -champion_files.py
   -external.py
   -match.py
   -rank.py
   -status.py
   -summoner.py
-requirements.txt
-setup.py

Все файлы установлены, кроме папки и файлов внутри champs

Ответы [ 2 ]

2 голосов
/ 27 марта 2019

Как этот вопрос ответы:

Есть 2 способа добавить статические файлы:

1) Include_package_data = True + MANIFEST.in

Файл MANIFEST.in в том же каталоге setup.py, который выглядит следующим образом:

include src/static/*
include src/Potato/*.txt

2) Package_data в setup.py

package_data = {
    'static': ['*'],
    'Potato': ['*.txt']
}

Укажите файлы внутри setup.py.

1 голос
/ 27 марта 2019

Два файла, вероятно, могут быть получены во время выполнения из num_Uname.json, но это нормально.

Я пока не вижу директивы data_files в https://github.com/CharmingMother/LeagueLib/blob/async/setup.py

Томас Кокелерпредлагает использовать выражение типа

datafiles = [(datadir, list(glob.glob(os.path.join(datadir, '*'))))]

, а затем

setup(
    ...
    data_files = datafiles,
)

в http://thomas -cokelaer.info / blog / 2012/03 / how-to-embedded-data-files-in-python-using-setuptools /

В вашем случае это может быть так просто:

data_files = [('', ['champs/num_Uname.json'])],

Мартин Тома объясняет, что вы должны получить к ним доступ, используя filepath = pkg_resources.resource_filename(__name__, path) в Как читать (статический) файл из пакета Python?

Когда я читаю Fine Manual , это setup.cfg альтернативных поверхностей:

[options.data_files]
...
data = data/img/logo.png, data/svg/icon.svg

, предлагая строку типа . = champs/num_Uname.json или champs = num_Uname.json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...