2016-07-14 71 views
5

我有我的Python包的結構如下:蟒蛇的setup.py建立忽視的一些文件

$ tree -d | grep -v "__pycache__" 
. 
├── src 
│   ├── poliastro 
│   │   ├── iod 
│   │   ├── tests 
│   │   └── twobody 
│   │    └── tests 
├── setup.py 
└── MANIFEST.in 

47 directories 

BUF執行python setup.py build後,最裏面test目錄中,無法複製:

$ tree -d | grep -v "__pycache__" 
. 
├── build 
│ ├── lib 
│ │ └── poliastro 
│ │  ├── iod 
│ │  ├── tests 
│ │  └── twobody 

在相反,python setup.py sdist工作正常。

到目前爲止,我已經使用了MANIFEST.in規則來包含或排除sdist中的某些文件,模式和目錄。有沒有辦法控制什麼去build目錄?爲什麼有些測試正在實現,還有一些不是?

參考原來的問題和源代碼:https://github.com/poliastro/poliastro/issues/129

+0

你能分享MANIFEST.in內容嗎? – creativeChips

回答

2

您的setup()不見了include_package_data=True。查看該公關我已經制作了https://github.com/poliastro/poliastro/pull/139

討論:如果沒有這個功能,默認情況下不包括非python包文件(例如列表中不包含「在包中」的測試py文件),即使它們在技術上這是Python包目錄樹的一部分。
/HTH

+0

哇,包括拉請求:)非常感謝你! – astrojuanlu

0

嘗試把__init__.py文件MANIFEST.in指定的文件夾包括裏面。

+0

問題是,它們是測試文件夾,因此不打算導入。 – astrojuanlu

+0

好的。在過去,我發現安裝後,pip工具刪除了所有沒有被指定爲模塊的文件夾(裏面有\ _ \ _ init \ _ \ _。py)。 – ecolell