如何使用 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'])]
是否可以在使用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'])]