【问题标题】:How to deploy to a new directory structure with setuptools如何使用 setuptools 部署到新的目录结构
【发布时间】:2015-09-03 13:05:19
【问题描述】:

是否可以在使用 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

【问题讨论】:

  • data_files docs.python.org/3.3/distutils/… 可能有可能
  • 嗯,它似乎需要显式文件它确实使目录像我想要的那样,但它不会搜索“* .py”。我必须命名所有文件。
  • 这几乎可以做到,但是它丢失了每个 .py 所在的“itemA, itemB”目录。 data_files = [("Folder1/Folder2", glob.glob(" +/+.py" ))] + = 明星。明星不工作。

标签: python setuptools


【解决方案1】:

我可以按照@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'])]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2020-03-20
    相关资源
    最近更新 更多