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

时间:2015-09-03 13:05:19

标签: python 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

1 个答案:

答案 0 :(得分:0)

我可以使用@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,

stuff =

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