2016-06-18 20 views
10

Yeniden kullanılabilir uygulama belgeleri (https://docs.djangoproject.com/en/1.9/intro/reusable-apps/) şablon ve statik dosyaları MANIFEST.in'da listelemenizi söyler, ancak bu dosyada python setup.py bdist_wheel gibi görünüyor.Django uygulamasından nasıl bir tekerlek oluşturabilirim?

Ben data_files başvurular gördüm ama bu dosyaların (ve sys.prefix eşit sistemleri arasında site-packages ilişkili değildir) piton kurulumu (sys.prefix) ve paket kurulumu göre dizinleri gidin.

Ben myapp/templates/myapp/foo.html statik dosyalar için benzer .../site-packages/myapp/templates/myapp/foo.html sona ve gerektiği varsayılarak içinde haklı mıyım, ve kullanıcı pip install myapp sonra manage.py collectstatic çalıştırmak için ihtiyaç duyduğu?

Güncelleme (örnek):

aşağıdaki yapıya sahiptir:

(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 * 

python setup.py sdist veçalışan .zip dosyasına içine baktığın zaman sen .zip'teki ve içindeki bakmak .whl dosyayı yeniden adlandırırsanız

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 

, sen şablonlar ve statik klasörleri bulacaksınız:Aşağıdaki dosyalar bin myapp/dist yaratır dizinler dahil değildir.

Güncelleme 2 (çözelti):

sonra .whl dosyası oluşturur python setup.py bdist_wheel çalışan

from setuptools import find_packages, setup 
setup(
    name='myapp', 
    version='0.1.0', 
    include_package_data=True, 
    packages=['myapp'], 
    zip_safe=False, 
) 

için

recursive-include myapp * 

ve setup.py dosyası için MANIFEST.in dosyasını değiştirme Bu, beklenen yerlerde myapp/templates ve myapp/static yükler. Bu, doğru yolları ile myapp/myapp altında her şeyi içerir

recursive-include myapp * 

:

+0

Sorununuzun MCSE'sini gösterebilir misiniz? MANIFEST.in ve 'setup.py' içinde neler denediniz? – zmo

+0

@zmo kesinlikle. – thebjorn

+3

@thebjorn, lütuf hakkında üzücü ama muhtemelen kendi sorunuzu cevaplamalısınız! – Doddie

cevap

1

MANIFEST.in dosyaya değiştirilmesi gerekir. Özellikle, bu gerekli olan myapp/myapp/templates içerir.

Yukarıdaki bildirim de .whl dosyasını yükledikten sonra manage.py collectstatic dosyasını çalıştırmayı planladığınızda yararlı olabilecek myapp/myapp/static dosyasını içerir. setup.py'da, setup işlevinin, setuptools (ve deşifre edilmez), yani (örneğin, damacanaların değil) alınması gerekir.:

from setuptools import find_packages, setup 
setup(
    name='myapp', 
    version='0.1.0', 
    include_package_data=True, 
    packages=['myapp'], 
    zip_safe=False, 
) 

şimdi beklenen yerlerde myapp/templates ve myapp/static yükler bir .whl dosyası oluşturur python setup.py bdist_wheel çalıştırdığınızda.

İlgili konular