【问题标题】:Add data folder recursively using data_files in Python在 Python 中使用 data_files 递归添加数据文件夹
【发布时间】:2018-04-19 04:27:15
【问题描述】:

我想在安装我的项目时递归地在根包中添加文件夹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))

【问题讨论】:

    标签: python python-3.x installation data-files sdist


    【解决方案1】:

    函数应该是:

    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

    【讨论】:

    • 我在谷歌上搜索了很多次,也许我尝试了类似你关于 setuptools 的链接。您链接中的教程很长。也许我错过了什么,所以我无法解决问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 2021-03-21
      • 2021-09-27
      • 2018-12-08
      • 2011-01-13
      相关资源
      最近更新 更多