如何使用setuptools和setup.py从软件包中排除单个文件
问题内容:
我正在努力blowdrycss
。仓库在这里。
我希望将设置文件blowdrycss_settings.py
从pypi的最终软件包中排除。目的是动态构建自定义设置文件,该文件将放置在用户virtualenv
/ project文件夹中。
在中setup.py
,我具有以下内容:
packages=find_packages(exclude=['blowdrycss_settings.py', ]),
我也尝试了exclude_package_data:
exclude_package_data={
'': ['blowdrycss_settings.py'],
'': ['blowdrycss/blowdrycss_settings.py'],
'blowdrycss': ['blowdrycss_settings.py'],
},
然后我跑步python setup.py sdist bdist
。
但是,当我查看构建文件夹时,我仍然看到blowdrycss_settings.py
:
- build
- lib
- blowdrycss_settings.py
仅排除文件似乎很简单。
如何blowdrycss_settings.py
从分布式软件包中排除?
问题答案:
这是我的解决方案。
在的下面blowdrycss
,我创建了一个名为的新模块,settings
因此目录结构现在如下所示:
blowdrycss
blowdrycss
settings
blowdrycss_settings.py
根据此参考资料,setup.py
我里面有以下内容:
packages=find_packages(exclude=['*.settings', ]),
要构建发行版:
- 删除
build
,dist
和.egg-info
文件夹。 - 跑
python setup.py sdist bdist
回想起来,我无法做我最初的尝试是一件好事。新结构感觉更清洁,模块化程度更高。