2016-07-14 75 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