如何使用 setuptools 部署到新的目录结构

How to deploy to a new directory structure with setuptools

是否可以在使用setuptools部署时创建一个新的目录结构? 在我的 setup.py 文件中,它反映了我当前的结构

  package_dir      = {"": "."},
  packages         = ["",],
  package_data     = {"": ["ItemA/*.py",
                           "ItemB/*.py",
                           "ItemC/*.py",
                           "Master.foo",
                           ] },

我不能改变原来的结构,但我想在部署之前添加两级文件夹。

./
 Folder1/Folder2/
                /ItemA/ *.py
                /ItemB/ *.py
                /ItemC/ *.py
                Master.foo

我可以按照@pacholik 的建议使用data_files 来做我想做的事。我得到了两次包中的文件,但这对我想要做的事情来说没问题。

在我的设置调用之前,我这样做了:

stuff = []
for f in glob.glob("*/*.py"):
    stuff.append((os.path.join("Folder1/Folder2", os.path.dirname(f)), [os.path.join(os.path.dirname(f),os.path.basename(f))] ))
stuff.append( ('esri/toolboxes', ["Master.foo"]))

然后直接赋值data_files = stuff,

东西 =

[('Folder1/Folder2\ItemA', ['ItemA\x.py']), ('Folder1/Folder2\ItemB', ['ItemB\y.py']), ('Folder1/Folder2\ItemC', ['ItemC\z.py']), ('Folder1/Folder2', ['Master.foo'])]