0

我想在安装我的项目时递归地添加文件夹mydata1mydata2根包。所以我把这个函数写在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))
4

2 回答 2

0

对不起大家,问题是我的版本5.99999。太长。使用固定的东西6.0

于 2018-04-19T07:32:52.663 回答
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

于 2018-04-19T04:57:35.067 回答