• www.keimlink.de
Überblick
• Vorstellung der Werkzeuge • Einsatz in der Praxis
• distribute • modern-package-
template
• distutils2
• virtualenv
• pip
• virtualenvwrapper
• virtualenv
• pip
• virtualenvwrapper
Vorstellung der
Werkzeuge
Python Packaging
Quelle: http://guide.python-distribute.org/introduction.html#current-state-of-packaging
distribute
• Erweitert distutils
• Python 3 Unterstützung
$ wget http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ easy_install pip
Design done by Idan Gazit (http://pixane.com) - License: cc-by-3.0
virtualenv
• PasteScript Template
• distribute
• buildout
Variables:
egg: testpackage
package: testpackage
project: testpackage
Enter version (Version (like 0.1)) ['0.1']:
Enter description (One-line description of the package) ['']: A test package.
Enter keywords (Space-separated keywords/tags) ['']: test package
Enter author (Author name) ['']: Markus Zapke-Gründemann
Enter author_email (Author email) ['']: info@keimlink.de
Enter url (URL of homepage) ['']: http://www.keimlink.de/
Enter license_name (License name) ['']: BSD
Creating template modern_package
Creating directory ./testpackage
Copying HACKING.txt to ./testpackage/HACKING.txt
Copying MANIFEST.in to ./testpackage/MANIFEST.in
Copying NEWS.txt to ./testpackage/NEWS.txt
Copying README.rst to ./testpackage/README.rst
Copying bootstrap.py to ./testpackage/bootstrap.py
Copying buildout.cfg_tmpl to ./testpackage/buildout.cfg
Copying setup.py_tmpl to ./testpackage/setup.py
Running /usr/bin/python setup.py egg_info
modern-package-template
Verzeichnisstruktur
testpackage/
|-- .gitignore
|-- .hgignore
|-- HACKING.txt
|-- MANIFEST.in
|-- NEWS.txt
buildout
|-- README.rst
|-- bootstrap.py distribute
|-- buildout.cfg
|-- setup.py
`-- src
|-- testpackage
`-- testpackage.egg-info
virtualenv
virtualenv anlegen
$ export VIRTUALENV_USE_DISTRIBUTE=1
virtualenv aktivieren
und deaktivieren
(testenv)zappi ~$ cdvirtualenv
(testenv)zappi ~/.virtualenvs/testenv$
lssitepackages
(testenv)zappi ~$ lssitepackages
distribute-0.6.10-py2.6.egg easy-install.pth pip-0.7.1-py2.6.egg
setuptools.pth
(testenv)zappi ~$ lssitepackages -l
total 8
drwxr-xr-x 10 zappi zappi 340 Aug 10 19:22 distribute-0.6.10-py2.6.egg
-rw-r--r-- 1 zappi zappi 237 Aug 10 19:22 easy-install.pth
drwxr-xr-x 4 zappi zappi 136 Aug 10 19:22 pip-0.7.1-py2.6.egg
-rw-r--r-- 1 zappi zappi 30 Aug 10 19:22 setuptools.pth
cdsitepackages
(testenv)zappi ~$ cdsitepackages
(testenv)zappi ~/.virtualenvs/testenv/lib/python2.6/site-packages$ ls -l
total 8
drwxr-xr-x 10 zappi zappi 340 Aug 10 19:22 distribute-0.6.10-py2.6.egg
-rw-r--r-- 1 zappi zappi 237 Aug 10 19:22 easy-install.pth
drwxr-xr-x 4 zappi zappi 136 Aug 10 19:22 pip-0.7.1-py2.6.egg
-rw-r--r-- 1 zappi zappi 30 Aug 10 19:22 setuptools.pth
add2virtualenv
virtualenv_path_extensions.pth:
/Users/zappi/Projekte/Python/django-dev
deactivate
(testenv)zappi ~$ deactivate
zappi ~$
workon
~/.virtualenvs/
|-- get_env_details
|-- initialize
|-- postactivate
|-- postdeactivate
|-- postmkvirtualenv
|-- postrmvirtualenv
|-- preactivate
|-- predeactivate
|-- premkvirtualenv
`-- prermvirtualenv
pip
pip install
$ pip install Markdown
Downloading/unpacking Markdown
Downloading Markdown-2.0.3.zip (94Kb): 94Kb downloaded
Running setup.py egg_info for package Markdown
Installing collected packages: Markdown
Running setup.py install for Markdown
changing mode of build/scripts-2.6/markdown from 644 to 755
changing mode of /Users/zappi/.virtualenvs/testenv/bin/markdown
to 755
Successfully installed Markdown
Cleaning up...
pip install
$ pip install Django==1.1.2
oder
$ export PIP_USE_MIRRORS=true
pip freeze
$ pip freeze
Django==1.2.1
amqplib==0.6.1
anyjson==0.2.4
billiard==0.3.1
carrot==0.10.5
celery==1.0.5
distribute==0.6.10
django-debug-toolbar==0.8.3
django-picklefield==0.1.6
importlib==1.0.2
python-dateutil==1.5
wsgiref==0.1.2
• http://guide.python-distribute.org/
• http://pip.openplans.org/
• http://pypi.python.org/pypi/virtualenv
• http://pypi.python.org/pypi/virtualenvwrapper
• http://pypi.python.org/pypi/modern-package-
template
Lizenz