Python 如何在我的项目分发中包括包子文件夹?

Python 如何在我的项目分发中包括包子文件夹?,python,django,setuptools,pypi,distribute,Python,Django,Setuptools,Pypi,Distribute,我有一个具有这种结构的项目: SomeProject/ bin/ CHANGES.txt docs/ LICENSE.txt MANIFEST.in README.txt setup.py someproject/ __init__.py location.py utils.py static/ javascript/

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

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,它具有类似的结构。上传此子文件夹时有什么问题吗?

您应该能够通过编辑
清单将这些文件添加到源发行版。在
文件中添加一行,如:

recursive-include someproject/static *.js
或者只是:

include someproject/static/javascript/*.js
这将足以获得源发行版中包含的文件。如果您正在使用的setuptools
include\u package\u data
选项不足以安装文件,您可以在
setup.py中要求使用类似以下内容显式安装文件:

package_data={'someproject': ['static/javascript/*.js']},
使用下列内容

packages = ['.','templates','static','docs'],

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

詹姆斯,我在你的回答上取得了一些进展。上传后包中的文件丢失,现在所有文件都在tar.gz文件中。但是,当我pip安装包时,文件又消失了!