Рекурсивное добавление папки данных с использованием data_files в Python

Я хочу добавить папки mydata1 а также mydata2 в корневой пакет рекурсивно при установке моего проекта. Поэтому я пишу эту функцию в setup.py:

def gen_data_files(*dirs):
    results=[]
    for datadir in dirs:
        results.extend([(p, [os.path.join(p,f) for f in files]) for p, subdirs, files in os.walk(datadir)])
    return results

А потом в setup.py:

setup(
    #...
    data_files=gen_data_files('mydata2', 'mydata2'),
    #...
)

Создание sdist в порядке: setup.py sdist upload -r mypypi

Но когда я установил, было выброшено исключение: ValueError: too many values to unpack (expected 2),

Я новичок в Python. Так что я не знаю почему. Можете ли вы помочь мне в этом случае? Спасибо!

РЕДАКТИРОВАТЬ: эти коды имеют одинаковые results:

results.extend([(p, [os.path.join(p,f) for f in files]) for p, subdirs, files in os.walk(datadir)])

results.extend((p, [os.path.join(p,f) for f in files]) for p, subdirs, files in os.walk(datadir))

2 ответа

Извините всех, проблема в моей версии 5.99999, Слишком долго. Используйте что-то вроде 6.0 фиксированный.

Функция должна быть:

def gen_data_files(*dirs):
    results = []
    for datadir in dirs:
        for p, subdirs, files in os.walk(datadir):
            results.extend((p, os.path.join(p, f)) for f in files)
    return results

Кроме того, могу ли я предложить использовать setuptools.

Другие вопросы по тегам