2015-09-03 50 views
0

使用setuptools部署時是否可以創建新的目錄結構? 在我的setup.py文件,它反映了我現在的結構,我有如何使用setuptools部署到新的目錄結構

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

我不能改變原有的結構,但我想部署在部署之前都添加文件夾的兩個層次。

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

它可能會用'data_files' https://開頭的文檔。 python.org/3.3/distutils/setupscript.html#installing-additional-files – pacholik

+0

嗯,它似乎想顯式文件它確實使目錄像我想要的,但它不會搜索「* .py」。我必須命名所有文件。 – KHibma

+0

這幾乎是這樣做的,但是它丟失了每個.py所在的「itemA,itemB」目錄。data_files = [(「Folder1/Folder2」,glob.glob(「+/+。py」))] + = star。明星不工作。 – KHibma

回答

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,

東西=

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