Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Packager son projet Django
Search
Bruno Renié
April 14, 2012
Programming
4
550
Packager son projet Django
Bruno Renié
April 14, 2012
Tweet
Share
More Decks by Bruno Renié
See All by Bruno Renié
Visibility for web developers
brutasse
3
430
Decentralization & real-time with PubSubHubbub
brutasse
1
140
Deployability of Python Web Applications
brutasse
17
2.3k
Stop writing settings files
brutasse
21
2.5k
Class-based Views: patterns and anti-patterns
brutasse
9
1.6k
Staticfiles : tout ce qu'il faut savoir, rien que ce qu'il faut savoir
brutasse
4
530
Introduction to Django
brutasse
3
400
Other Decks in Programming
See All in Programming
Ruby Function Composition
bkuhlmann
1
330
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
450
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
630
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
エンターテイメント業界で利用されるAWS
demuyan
0
200
甘い香りに誘われてVanilla Extractを1年間運用してみた
miyahkun
1
110
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
350
ドメイン・ファーストで考える問題解決に役立つモデル設計 / Domain First Model Design
suzushin54
2
2.1k
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
340
受託開発でGitLab CI を活用していく
xiombatsg
1
270
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Product Roadmaps are Hard
iamctodd
43
9.7k
Visualization
eitanlees
135
14k
Statistics for Hackers
jakevdp
789
220k
10 Git Anti Patterns You Should be Aware of
lemiorhan
646
57k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
We Have a Design System, Now What?
morganepeng
42
6.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
A better future with KSS
kneath
231
16k
KATA
mclloyd
14
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Transcript
Bruno Renié Djangocong 2012 Packager son projet Django
distribuer / déployer du code
git
dépendances rollback traçabilité
PaaS
contraintes géographiques architecturales culturelles
packaging
installer son application comme une simple bibliothèque* * configuration laissée
au soin de l'utilisateur
simplicité traçabilité reproductibilité
OS Application deb / RPM setup.py
None
django nettoyez-moi tout ça
arrêter d'altérer sys.path project/ __init__.py urls.py app1/ __init__.py models.py app2/
from project.app1.views import stuff
Application réutilisable : package séparé from project.app.models import Stuff from
registration.models import RegistrationProfile Application non réutilisable : embarquée
requirements : versions explicites Django==1.4 PIL==1.1.6 pas de liens git
setup.py from distutils.core import setup from setuptools import find_packages with
open('requirements.txt') as reqs: install_requires = reqs.read().split('\n') setup( name='project', version=__import__('project').__version__, packages=find_packages(), include_package_data=True, zip_safe=False, install_requires=install_requires, )
MANIFEST.in pour tout ce qui est non-python include requirements.txt recursive‐include
project * recursive‐exclude project *.pyc recursive‐exclude project *.scss exclude project/settings.py
settings project/default_settings.py Packagé : Déployé : settings.py from project.default_settings import
* DATABASES = { … }
layout final requirements.txt setup.py MANIFEST.in project/ __init__.py default_settings.py settings.py app1/
app2/
Déploiement
env/ public/ static/ settings.py wsgi.py ./env/bin/gunicorn wsgi:application utiliser add2virtualenv pour
rendre wsgi et settings importables sans toucher PYTHONPATH
pip et paquets privés --find-links : file:///path/to/packages --index-url : structure
de type http://pypi.python.org/simple/ bien héberger tous ses paquets pypi tombe, les versions disparaissent
Workflow final Déployer (incrément n° de version) python setup.py sdist
(upload) pip install ‐U project ‐‐find‐links … Rollback pip install project==X.Y.Z ‐‐find‐links …
https://github.com/brutasse/fab-bundle @brutasse
[email protected]