SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Pip, Virtualenv,
VirtualenvWrapper &
        More
      Django District
  Wednesday, Nov. 7, 2012

                        Jackie Kazil
                        @jackiekazil
Where we all start
● easy_install Globally
● And it works! Yay!
● But then....
  ○ dependencies or versions
  ○ coordination w/ other developers
  ○ keeping different systems on same page
  ○ breaking sys python
Case study: Dependencies
Once upon a time in city, much like this one,
there was a newspaper...

     ….. over 90 Django applications updated
  from 0.96 to 1.1.
Case study: Breaking sys python
From stackoverflow...
"Is there a way to ensure I can clean everything
up and start from zero?"

"If you remove everything in these 2 directories,
it should clear out all modules...."
Why Pip & Virtualenv
● Isolate
  ○ System packages from project packages
  ○ Projects from each other

● No sudo required - sys python requires sudo
  access, project python doesn’t
Becoming the standard...
Pep 405
Python 3.3

http://www.python.org/dev/peps/pep-0405

"... proposes to add to Python a mechanism for
lightweight "virtual environments" with their own
site directories, optionally isolated from system
site directories...."
What is...
●   pip - replaces easy_install

●   virtualenv - creates isolated python
    environments




●   virtualenvwrapper - to be explained later
Basic setup
$ sudo easy_install pip
$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper

Add to bash settings...
source /usr/local/bin/virtualenvwrapper.sh
export WORKON_HOME=$HOME/.virtualenvs
Make environment
$ mkvirtualenv foo

You can add more to this... like setting python
version.
$ mkvirtualenv --python=python2.7
What is virtualenvwrapper?
Helps make things easier...

  workon foo
    vs
  source ~/.virtualenvs/foo/bin/activate
Installing libraries
pip install django
pip install -r requirements.txt
pip install -U django
Where does it live? ~/.virtualenv/foo/...
…/bin
  Binaries in your env. Example: ipython

.../include
     Dev headers used by the #include directive in C.

…/lib
   Where all your python libraries will live
   lib/python2.7/site-packages

.../share
     Mans & Docs
Wrappers
●   mkvirtualenv (calls hooks)
●   rmvirtualenv
●   workon (calls hooks)
●   add2virtualenv
●   cdsitepackages
●   cdvirtualenv
●   deactivate (calls hooks)
Hooks
●   postmkvirtualenv
●   prermvirtualenv
●   postrmvirtualenv
●   postactivate
●   predeactivate
●   postdeactivate
Hook example: postactivate
proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}')

if [ $proj_name = "foo" ]; then
    cd /opt/foo/core/
    export DJANGO_SETTINGS_MODULE='settings.
dev_settings'
    echo "DJANGO_SETTINGS_MODULE set to:"
$DJANGO_SETTINGS_MODULE
fi
Hooks example: postmkvirtualenv
https://gist.github.com/4034103
Other helpful stuff
pip freeze
pip freeze > requirements.txt

yolk -l

python -c "import sys,pprint;pprint.pprint(sys.
path)"
More... virtualenv-burrito
https://github.com/brainsik/virtualenv-burrito

With one command.... BAM! (or maybe not)
... a virtualenv & virtualenvwrapper environment
More... virtualenv-tools
https://github.com/fireteam/virtualenv-tools

"This repository contains scripts we're
using at Fireteam for our deployment of
Python code."
More... Tox http://tox.testrun.org/latest/
Tox as is a generic virtualenv management and test
command line tool you can use for:
● checking your package installs correctly with different
   Python versions and interpreters

● running your tests in each of the environments,
  configuring your test tool of choice

● acting as a frontend to Continuous Integration servers,
  greatly reducing boilerplate and merging CI and shell-
  based testing.
More .... Keeping things fresh
Autoenv
https://github.com/kennethreitz/autoenv
"Magic per-project shell environments. Very pretentious."


Bundle Scout
http://bundlescout.com/
"Daily emails keep you on top of the latest updates from
your favorite libraries."
More .... Keeping things fresh
(cont)
Pip Lint
https://github.com/dcramer/piplint
"Piplint validates your current environment with the
requirements files you've specified."


Pip Tools
https://github.com/nvie/pip-tools
"A set of two command line tools to help you keep your pip-
based packages fresh, even when you've pinned them"
The End
Me: Jackie Kazil, @jackiekazil

W/ contributions from...
Chris Adams, @acdha
   &
Members of Django-District :-)
http://www.django-district.org/

Contenu connexe

Tendances

Tsung Intro presentation 2013
Tsung Intro presentation 2013Tsung Intro presentation 2013
Tsung Intro presentation 2013
Steffen Larsen
 
Easy distributed load test with Tsung
Easy distributed load test with TsungEasy distributed load test with Tsung
Easy distributed load test with Tsung
Ngoc Dao
 
Scale11x lxc talk
Scale11x lxc talkScale11x lxc talk
Scale11x lxc talk
dotCloud
 
Porting Gentoo to DragonFly
Porting Gentoo to DragonFlyPorting Gentoo to DragonFly
Porting Gentoo to DragonFly
Naohiro Aota
 

Tendances (19)

Tsung Intro presentation 2013
Tsung Intro presentation 2013Tsung Intro presentation 2013
Tsung Intro presentation 2013
 
Easy distributed load test with Tsung
Easy distributed load test with TsungEasy distributed load test with Tsung
Easy distributed load test with Tsung
 
Don’t block the event loop!
Don’t block the event loop!Don’t block the event loop!
Don’t block the event loop!
 
Scale11x lxc talk
Scale11x lxc talkScale11x lxc talk
Scale11x lxc talk
 
Python + Machine Learning Course, Session 2
Python + Machine Learning Course, Session 2Python + Machine Learning Course, Session 2
Python + Machine Learning Course, Session 2
 
Porting Gentoo to DragonFly
Porting Gentoo to DragonFlyPorting Gentoo to DragonFly
Porting Gentoo to DragonFly
 
NodeJs
NodeJsNodeJs
NodeJs
 
Torch intro
Torch introTorch intro
Torch intro
 
Torch7 and ConvNet
Torch7 and ConvNetTorch7 and ConvNet
Torch7 and ConvNet
 
Go debugging and troubleshooting tips - from real life lessons at SignalFx
Go debugging and troubleshooting tips - from real life lessons at SignalFxGo debugging and troubleshooting tips - from real life lessons at SignalFx
Go debugging and troubleshooting tips - from real life lessons at SignalFx
 
Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우
 
pam_container -- jeszcze lżejsza wirtualizacja
pam_container -- jeszcze lżejsza wirtualizacjapam_container -- jeszcze lżejsza wirtualizacja
pam_container -- jeszcze lżejsza wirtualizacja
 
Node Web Development 2nd Edition: Chapter3 Node Modules
Node Web Development 2nd Edition: Chapter3 Node ModulesNode Web Development 2nd Edition: Chapter3 Node Modules
Node Web Development 2nd Edition: Chapter3 Node Modules
 
Elastic search
Elastic searchElastic search
Elastic search
 
RingoJS
RingoJSRingoJS
RingoJS
 
devday2012
devday2012devday2012
devday2012
 
Glusterfs session #18 intro to fuse and its trade offs
Glusterfs session #18 intro to fuse and its trade offsGlusterfs session #18 intro to fuse and its trade offs
Glusterfs session #18 intro to fuse and its trade offs
 
Terraform: начинайте использовать, если еще не.
Terraform: начинайте использовать, если еще не.Terraform: начинайте использовать, если еще не.
Terraform: начинайте использовать, если еще не.
 
Koha
KohaKoha
Koha
 

En vedette

Django mongodb -djangoday_
Django mongodb -djangoday_Django mongodb -djangoday_
Django mongodb -djangoday_
WEBdeBS
 

En vedette (20)

We Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese ShopWe Buy Cheese in a Cheese Shop
We Buy Cheese in a Cheese Shop
 
Python, Development Environment for Windows
Python, Development Environment for WindowsPython, Development Environment for Windows
Python, Development Environment for Windows
 
Python Recipes for django girls seoul
Python Recipes for django girls seoulPython Recipes for django girls seoul
Python Recipes for django girls seoul
 
The Django Book Chapter 9 - Django Workshop - Taipei.py
The Django Book Chapter 9 - Django Workshop - Taipei.pyThe Django Book Chapter 9 - Django Workshop - Taipei.py
The Django Book Chapter 9 - Django Workshop - Taipei.py
 
User-centered open source
User-centered open sourceUser-centered open source
User-centered open source
 
Overview of Testing Talks at Pycon
Overview of Testing Talks at PyconOverview of Testing Talks at Pycon
Overview of Testing Talks at Pycon
 
EuroDjangoCon 2009 - Ein Rückblick
EuroDjangoCon 2009 - Ein RückblickEuroDjangoCon 2009 - Ein Rückblick
EuroDjangoCon 2009 - Ein Rückblick
 
PythonBrasil[8] closing
PythonBrasil[8] closingPythonBrasil[8] closing
PythonBrasil[8] closing
 
Authentication & Authorization in ASPdotNet MVC
Authentication & Authorization in ASPdotNet MVCAuthentication & Authorization in ASPdotNet MVC
Authentication & Authorization in ASPdotNet MVC
 
Bottle - Python Web Microframework
Bottle - Python Web MicroframeworkBottle - Python Web Microframework
Bottle - Python Web Microframework
 
Vim for Mere Mortals
Vim for Mere MortalsVim for Mere Mortals
Vim for Mere Mortals
 
NoSql Day - Chiusura
NoSql Day - ChiusuraNoSql Day - Chiusura
NoSql Day - Chiusura
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework  for perfectionists with deadlinesDjango - The Web framework  for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Super Advanced Python –act1
Super Advanced Python –act1Super Advanced Python –act1
Super Advanced Python –act1
 
The Django Book, Chapter 16: django.contrib
The Django Book, Chapter 16: django.contribThe Django Book, Chapter 16: django.contrib
The Django Book, Chapter 16: django.contrib
 
Django mongodb -djangoday_
Django mongodb -djangoday_Django mongodb -djangoday_
Django mongodb -djangoday_
 
2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论 2007 - 应用系统脆弱性概论
2007 - 应用系统脆弱性概论
 
라이트닝 토크 2015 파이콘
라이트닝 토크 2015 파이콘라이트닝 토크 2015 파이콘
라이트닝 토크 2015 파이콘
 
Django - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlinesDjango - The Web framework for perfectionists with deadlines
Django - The Web framework for perfectionists with deadlines
 
Django-Queryset
Django-QuerysetDjango-Queryset
Django-Queryset
 

Similaire à Django district pip, virtualenv, virtualenv wrapper & more

5 minute intro to virtualenv
5 minute intro to virtualenv5 minute intro to virtualenv
5 minute intro to virtualenv
amenasse
 
PyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and MorePyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and More
Matt Harrison
 

Similaire à Django district pip, virtualenv, virtualenv wrapper & more (20)

Virtualenv
VirtualenvVirtualenv
Virtualenv
 
Arbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenvArbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenv
 
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
Christian Strappazzon - Presentazione Python Milano - Codemotion Milano 2017
 
5 minute intro to virtualenv
5 minute intro to virtualenv5 minute intro to virtualenv
5 minute intro to virtualenv
 
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment GuideAWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
AWS EC2 Ubuntu Instance - Step-by-Step Deployment Guide
 
Great Hiroshima with Python 170830
Great Hiroshima with Python 170830Great Hiroshima with Python 170830
Great Hiroshima with Python 170830
 
PyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialPyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 Tutorial
 
How I hack on puppet modules
How I hack on puppet modulesHow I hack on puppet modules
How I hack on puppet modules
 
Package Management via Spack on SJTU π Supercomputer
Package Management via Spack on SJTU π SupercomputerPackage Management via Spack on SJTU π Supercomputer
Package Management via Spack on SJTU π Supercomputer
 
Intro django
Intro djangoIntro django
Intro django
 
First python project
First python projectFirst python project
First python project
 
Arbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenvArbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenv
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
 
Python virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesPython virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutes
 
Python Projects at Neova
Python Projects at NeovaPython Projects at Neova
Python Projects at Neova
 
Virtualenv
VirtualenvVirtualenv
Virtualenv
 
PyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and MorePyCon 2013 : Scripting to PyPi to GitHub and More
PyCon 2013 : Scripting to PyPi to GitHub and More
 
Installing OpenCV 4 on Ubuntu 18.x
Installing OpenCV 4 on Ubuntu 18.xInstalling OpenCV 4 on Ubuntu 18.x
Installing OpenCV 4 on Ubuntu 18.x
 
Python packaging and dependency resolution
Python packaging and dependency resolutionPython packaging and dependency resolution
Python packaging and dependency resolution
 
Princeton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance ToolingPrinceton Wintersession: Software Quality Assurance Tooling
Princeton Wintersession: Software Quality Assurance Tooling
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Dernier (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Django district pip, virtualenv, virtualenv wrapper & more

  • 1. Pip, Virtualenv, VirtualenvWrapper & More Django District Wednesday, Nov. 7, 2012 Jackie Kazil @jackiekazil
  • 2. Where we all start ● easy_install Globally ● And it works! Yay! ● But then.... ○ dependencies or versions ○ coordination w/ other developers ○ keeping different systems on same page ○ breaking sys python
  • 3. Case study: Dependencies Once upon a time in city, much like this one, there was a newspaper... ….. over 90 Django applications updated from 0.96 to 1.1.
  • 4. Case study: Breaking sys python From stackoverflow... "Is there a way to ensure I can clean everything up and start from zero?" "If you remove everything in these 2 directories, it should clear out all modules...."
  • 5. Why Pip & Virtualenv ● Isolate ○ System packages from project packages ○ Projects from each other ● No sudo required - sys python requires sudo access, project python doesn’t
  • 6. Becoming the standard... Pep 405 Python 3.3 http://www.python.org/dev/peps/pep-0405 "... proposes to add to Python a mechanism for lightweight "virtual environments" with their own site directories, optionally isolated from system site directories...."
  • 7. What is... ● pip - replaces easy_install ● virtualenv - creates isolated python environments ● virtualenvwrapper - to be explained later
  • 8. Basic setup $ sudo easy_install pip $ sudo pip install virtualenv $ sudo pip install virtualenvwrapper Add to bash settings... source /usr/local/bin/virtualenvwrapper.sh export WORKON_HOME=$HOME/.virtualenvs
  • 9. Make environment $ mkvirtualenv foo You can add more to this... like setting python version. $ mkvirtualenv --python=python2.7
  • 10. What is virtualenvwrapper? Helps make things easier... workon foo vs source ~/.virtualenvs/foo/bin/activate
  • 11. Installing libraries pip install django pip install -r requirements.txt pip install -U django
  • 12. Where does it live? ~/.virtualenv/foo/... …/bin Binaries in your env. Example: ipython .../include Dev headers used by the #include directive in C. …/lib Where all your python libraries will live lib/python2.7/site-packages .../share Mans & Docs
  • 13. Wrappers ● mkvirtualenv (calls hooks) ● rmvirtualenv ● workon (calls hooks) ● add2virtualenv ● cdsitepackages ● cdvirtualenv ● deactivate (calls hooks)
  • 14. Hooks ● postmkvirtualenv ● prermvirtualenv ● postrmvirtualenv ● postactivate ● predeactivate ● postdeactivate
  • 15. Hook example: postactivate proj_name=$(echo $VIRTUAL_ENV|awk -F'/' '{print $NF}') if [ $proj_name = "foo" ]; then cd /opt/foo/core/ export DJANGO_SETTINGS_MODULE='settings. dev_settings' echo "DJANGO_SETTINGS_MODULE set to:" $DJANGO_SETTINGS_MODULE fi
  • 17. Other helpful stuff pip freeze pip freeze > requirements.txt yolk -l python -c "import sys,pprint;pprint.pprint(sys. path)"
  • 18. More... virtualenv-burrito https://github.com/brainsik/virtualenv-burrito With one command.... BAM! (or maybe not) ... a virtualenv & virtualenvwrapper environment
  • 19. More... virtualenv-tools https://github.com/fireteam/virtualenv-tools "This repository contains scripts we're using at Fireteam for our deployment of Python code."
  • 20. More... Tox http://tox.testrun.org/latest/ Tox as is a generic virtualenv management and test command line tool you can use for: ● checking your package installs correctly with different Python versions and interpreters ● running your tests in each of the environments, configuring your test tool of choice ● acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell- based testing.
  • 21. More .... Keeping things fresh Autoenv https://github.com/kennethreitz/autoenv "Magic per-project shell environments. Very pretentious." Bundle Scout http://bundlescout.com/ "Daily emails keep you on top of the latest updates from your favorite libraries."
  • 22. More .... Keeping things fresh (cont) Pip Lint https://github.com/dcramer/piplint "Piplint validates your current environment with the requirements files you've specified." Pip Tools https://github.com/nvie/pip-tools "A set of two command line tools to help you keep your pip- based packages fresh, even when you've pinned them"
  • 23. The End Me: Jackie Kazil, @jackiekazil W/ contributions from... Chris Adams, @acdha & Members of Django-District :-) http://www.django-district.org/