在打包Python egg时如何排除.gitignore中的文件?

时间:2012-05-25 20:07:53

标签: python django egg

我正在打包我的第一个Django应用程序,我想从蛋中省略我的settings_local.py文件。理想情况下,我正在寻找一种方法,让我的.gitignore文件中的所有内容也被排除在鸡蛋之外。

我在我的MANIFEST.in文件中尝试了以下变体(每个鸡蛋创建尝试一次):

prune project_name settings_local.py
prune project_name/settings_local.py
exclude project_name settings_local.py
exclude project_name/settings_local.py

我还尝试将以下行添加到我的startup.py文件中(根据朋友的推荐):

exclude_package_data= {'': 'settings_local.py'},

非常感谢任何建议。

2 个答案:

答案 0 :(得分:2)

请勿使用MANIFEST.in,而是使用setuptools-git;使用该包,git存储库中包含的所有文件也将成为egg的一部分,.gitignore中列出的任何文件都不会。

我在我的python的site-packages中全局安装了软件包,但它应该足以在setup.py结构的setup_requires中列出它:

setup(...
    setup_requires=['setuptools-git'],
    ...
)

答案 1 :(得分:2)

您可以使用git archive生成包含git存储库内容的zip文件(就像在新的工作目录中一样)。然后你可以使用这些文件包装你需要的蛋。

请参阅: git archive