【问题标题】:How can I exclude files in my .gitignore when packaging a Python egg?打包 Python 鸡蛋时如何排除 .gitignore 中的文件?
【发布时间】:2012-06-01 09:51:44
【问题描述】:

我正在打包我的第一个 Django 应用程序,我想从 egg 中删除我的 settings_local.py 文件。理想情况下,我正在寻找一种方法,将 .gitignore 文件中的所有内容也从 egg 中排除。

我在我的 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'},

非常感谢任何建议。

【问题讨论】:

    标签: python django egg


    【解决方案1】:

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

    我已经在我的 python 的站点包中全局安装了该包,但将其列在 setup.pysetup_requires 结构中就足够了:

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

    【讨论】:

    • 谢谢。太棒了。我很尴尬地承认,问题是我在初始化本地 repo 时并没有预料到 setup.py 的顶级目录,所以它在它之外。
    【解决方案2】:

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

    见: git archive

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2018-06-03
      • 2017-03-08
      • 2011-01-02
      • 2011-02-17
      • 2016-03-03
      • 2011-02-13
      • 1970-01-01
      • 2017-06-25
      相关资源
      最近更新 更多