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
这将足以获得源发行版中包含的文件。如果您正在使用的setuptoolsinclude\u package\u data
选项不足以安装文件,您可以在setup.py中要求使用类似以下内容显式安装文件:
package_data={'someproject': ['static/javascript/*.js']},
使用下列内容
packages = ['.','templates','static','docs'],
package_data={'templates':['*'],'static':['*'],'docs':['*'],},
詹姆斯,我在你的回答上取得了一些进展。上传后包中的文件丢失,现在所有文件都在tar.gz文件中。但是,当我pip安装包时,文件又消失了!