the*_*orn 12 python django setuptools
可重用的应用程序文档(https://docs.djangoproject.com/en/1.9/intro/reusable-apps/)告诉您列出模板和静态文件MANIFEST.in,但它python setup.py bdist_wheel看起来根本不像查看该文件.
我已经看到了对data_files这些文件的引用,但这些文件相对于python安装(sys.prefix)而不是软件包安装(并且sys.prefix与site-packages跨系统不一致).
我是否正确假设myapp/templates/myapp/foo.html应该最终进入.../site-packages/myapp/templates/myapp/foo.html并且类似于静态文件,并且用户需要运行manage.py collectstatic之后pip install myapp?
更新(示例):
以下结构:
(build2) go|c:\srv\tmp\myapp> tree
.
|-- MANIFEST.in
|-- myapp
| |-- static
| | `-- myapp
| | `-- foo.css
| |-- templates
| | `-- myapp
| | `-- foo.html
| |-- urls.py
| `-- views.py
`-- setup.py
5 directories, 6 files
Run Code Online (Sandbox Code Playgroud)
setup.py
import setuptools
from distutils.core import setup
setup(
name='myapp',
version='0.1.0',
packages=['myapp']
)
Run Code Online (Sandbox Code Playgroud)
MANIFEST.in
recursive-include myapp/templates *
recursive-include myapp/static *
Run Code Online (Sandbox Code Playgroud)
运行python setup.py sdist并python setup.py bdist_wheel创建以下文件bin myapp/dist:
2016-06-18 13:47 2,073 myapp-0.1.0-py2-none-any.whl
2016-06-18 13:46 2,493 myapp-0.1.0.zip
Run Code Online (Sandbox Code Playgroud)
如果您查看.zip文件,您将找到模板和静态文件夹,如果您将.whl文件重命名为.zip并查看其中,则不包含目录.
更新2(解决方案):
将MANIFEST.in文件更改为
recursive-include myapp *
Run Code Online (Sandbox Code Playgroud)
和setup.py到
from setuptools import find_packages, setup
setup(
name='myapp',
version='0.1.0',
include_package_data=True,
packages=['myapp'],
zip_safe=False,
)
Run Code Online (Sandbox Code Playgroud)
然后运行python setup.py bdist_wheel将创建.whl一个安装文件myapp/templates,并myapp/static在预期的地方.
该MANIFEST.in文件需要更改为:
recursive-include myapp *
Run Code Online (Sandbox Code Playgroud)
这包括myapp/myapp正确路径下的所有内容。特别是,这包括myapp/myapp/templates,这是必要的。
如果您打算在安装文件后运行,上面的声明还包括myapp/myapp/static可能有用的声明。manage.py collectstatic.whl
在 中setup.py,该函数需要从(而不是 distutils)setup导入,即:setuptools
from setuptools import find_packages, setup
setup(
name='myapp',
version='0.1.0',
include_package_data=True,
packages=['myapp'],
zip_safe=False,
)
Run Code Online (Sandbox Code Playgroud)
当您现在运行时,python setup.py bdist_wheel它将创建一个.whl安装myapp/templates在myapp/static预期位置的文件。
| 归档时间: |
|
| 查看次数: |
1481 次 |
| 最近记录: |