Рекурсивное добавление папки данных с использованием 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.