如何使用setuptools和setup.py从包中排除单个文件

我正在研究blowdrycss.存储库是here.

我希望从pypi的最终包中排除blowdrycss_settings.py的设置文件.目的是动态构建一个自定义设置文件,该文件将放置在用户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.

但是,当我查看build文件夹时,我仍然看到blowdrycss_settings.py:

- build 
    - lib
        - blowdrycss_settings.py

看起来排除文件应该很简单.

如何从分布式软件包中排除blowdrycss_settings.py?

解决方法:

这是我的解决方案.

在blowdrycss下面,我创建了一个名为settings的新模块,因此目录结构现在看起来像这样:

blowdrycss
    blowdrycss
        settings
            blowdrycss_settings.py

基于这个reference,在setup.py里面我有以下内容:

packages=find_packages(exclude=['*.settings', ]),   

要构建分发:

>删除build,dist和.egg-info文件夹.
>运行python setup.py sdist bdist

回想起来,我无法做我最初尝试的事情是好的.新结构感觉更清洁,更模块化.

上一篇:python软件包-是否包含测试套件


下一篇:python-在Windows 7 64位中设置pip