Con*_*ius 12 python setuptools setup.py
给出以下(演示)项目布局:
MyProject/
README
LICENSE
setup.py
myproject/
... # packages
extrastuff/
... # some extra data
Run Code Online (Sandbox Code Playgroud)
我如何(以及在何处)声明不同的分布类型?特别是我需要这两个选项:
仅包含源的分发
包含源和所有数据文件的分发(extrastuff)
理想情况下,如何声明上面两个配置,而第二个配置取决于第一个配置?
wut*_*utz 11
我之前实现了类似的东西...... sdist命令可以扩展到处理额外的命令行参数并根据这些操作来操作数据文件.如果你运行python setup.py sdist --help,它将在帮助中包含你的自定义命令行参数,这很好.使用以下配方:
from distutils import log
from distutils.core import setup
from distutils.command.sdist import sdist
class CustomSdist(sdist):
user_options = [
('packaging=', None, "Some option to indicate what should be packaged")
] + sdist.user_options
def __init__(self, *args, **kwargs):
sdist.__init__(self, *args, **kwargs)
self.packaging = "default value for this option"
def get_file_list(self):
log.info("Chosen packaging option: {self.packaging}".format(self=self))
# Change the data_files list here based on the packaging option
self.distribution.data_files = list(
('folder', ['file1', 'file2'])
)
sdist.get_file_list(self)
if __name__ == "__main__":
setup(
name = "name",
version = "version",
author = "author",
author_email = "author_email",
url = "url",
py_modules = [
# ...
],
packages = [
# ...
],
# data_files = default data files for commands other than sdist if you wish
cmdclass={
'sdist': CustomSdist
}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2039 次 |
| 最近记录: |