【问题标题】:How to include package sub-folders in my project distribution?如何在我的项目分发中包含包子文件夹?
【发布时间】:2013-03-17 00:44:56
【问题描述】:

我有一个具有这种结构的项目:

SomeProject/
    bin/
    CHANGES.txt
    docs/
    LICENSE.txt
    MANIFEST.in
    README.txt
    setup.py
    someproject/
        __init__.py
        location.py
        utils.py
        static/
            javascript/
                somescript.js

还有一个“setup.py”如下:

#!/usr/bin/env python

import someproject
from os.path import exists
try:
    from setuptools import setup, find_packages
except ImportError:
    from distutils.core import setup, find_packages

setup(
    name='django-some-project',
    version=someproject.__version__,
    maintainer='Some maintainer',
    maintainer_email='some@manteiner.com',
    packages=find_packages(),
    include_package_data=True,
    scripts=[],
    url='https://github.com/xxx/some-project',
    license='LICENSE',
    description='Some project description.',
    long_description=open('README.markdown').read() if exists("README.markdown") else "",
    install_requires=[
        "Django >= 1.4.0"
    ],
)

然后,当我使用命令上传它时:

python setup.py sdist upload

看起来没问题,但是包中没有带有“javascript”子文件夹的“静态”文件夹。我的“setup.py”的灵感来自具有类似结构的 github.com/maraujop/django-crispy-forms。关于上传此子文件夹有什么问题的任何提示?

【问题讨论】:

    标签: python django setuptools pypi distribute


    【解决方案1】:

    使用以下

    packages = ['.','templates','static','docs'],
    
    package_data={'templates':['*'],'static':['*'],'docs':['*'],},
    

    【讨论】:

      【解决方案2】:

      您应该能够通过编辑 MANIFEST.in 文件添加如下行来将这些文件添加到源代码分发中:

      recursive-include someproject/static *.js
      

      或者只是:

      include someproject/static/javascript/*.js
      

      这足以让文件包含在源代码发行版中。如果您使用的 setuptools include_package_data 选项不足以安装文件,您可以在 setup.py 中使用类似这样的内容要求明确安装它们:

      package_data={'someproject': ['static/javascript/*.js']},
      

      【讨论】:

      • 詹姆斯,我的回答取得了一些进展。上传后包中的文件丢失,现在都在 tar.gz 文件中。但是,当我 pip install 软件包时,文件又消失了!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      相关资源
      最近更新 更多