Dokumenty aplikacji do wielokrotnego użytku (https://docs.djangoproject.com/en/1.9/intro/reusable-apps/) wskazują, aby wyświetlić szablon i pliki statyczne w numerze MANIFEST.in
, ale nie wygląda na to, że w ogóle wygląda on w tym pliku.Jak utworzyć koło z aplikacji django?
Widziałem odniesień do data_files
ale te pliki iść w katalogach w stosunku do instalacji Pythona (sys.prefix
), a nie pakiet instalacyjny (a nie jest równomiernie sys.prefix
związane site-packages
między systemami).
mam rację zakładając, że myapp/templates/myapp/foo.html
powinna zakończyć się w .../site-packages/myapp/templates/myapp/foo.html
i podobnie dla plików statycznych, a użytkownik musi uruchomić manage.py collectstatic
po pip install myapp
?
Update (przykład):
następującą strukturę:
(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
setup.py
import setuptools
from distutils.core import setup
setup(
name='myapp',
version='0.1.0',
packages=['myapp']
)
MANIFEST.in
recursive-include myapp/templates *
recursive-include myapp/static *
działa python setup.py sdist
i python setup.py bdist_wheel
tworzy następujące pliki 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
jeśli spojrzeć wewnątrz pliku .zip, znajdziesz szablony i foldery statycznych, jeśli zmienić nazwę pliku .whl na .zip i nią patrzeć , katalogi nie są uwzględnione.
Update 2 (roztwór):
Zmiana pliku MANIFEST.in do
recursive-include myapp *
i setup.py do
from setuptools import find_packages, setup
setup(
name='myapp',
version='0.1.0',
include_package_data=True,
packages=['myapp'],
zip_safe=False,
)
następnie uruchomiony python setup.py bdist_wheel
utworzy plik .whl
który instaluje myapp/templates
i myapp/static
w oczekiwanych miejscach.
Czy możesz pokazać MCSE swojego problemu? Co wypróbowałeś w 'MANIFEST.in' i' setup.py'? – zmo
@zmo z pewnością. – thebjorn
@thebjorn, szkoda bounty, ale prawdopodobnie powinieneś odpowiedzieć na własne pytanie! – Doddie