requisite

Download Python dependencies and upload them to a custom PyPI server
Download

requisite Ranking & Summary

Advertisement

  • Rating:
  • License:
  • MIT/X Consortium Lic...
  • Publisher Name:
  • Samuel Sutch
  • Publisher web site:
  • http://github.com/samuraisam/

requisite Tags


requisite Description

Download Python dependencies and upload them to a custom PyPI server requisite is a module that downloads Python packages from a requirements.txt file and uploads them to your private PyPI server.Developing modern web applications often requires relying on a potentially very large suite of 3rd party components. Dependency management for such applications is a notorously agrivating experience.In the python world we have some great tools such as pip, virtualenv and distribute, that have allowed us to develop and share a wide breadth of software projects.PyPI among various social coding sites are the preferred way to distribute your project to a wider audience and for that they work great. However when it's time to deploy your application to servers, depending on those would be a a huge mistake. We've all done it, and sometimes the ramifications can be pretty painful. Without knowing the uptime of PyPI or github, for example--it's not enough. Not only that but the project could disappear, be moved or be changed in some way that causes incompatability to your application.Therefore it's a good idea to host your own packages somewhere. Like your own custom installation of PyPI that has just the packages you need, at the versions you need them, hosted in a place that won't change unless you say. Doesn't that sound complex?It isn't!Enter: Chishop (and of course it's evil cousin: Requisite!)Chishop is a simplistic PyPI server written in Django just for this purpose. Requisite is some opinionated glue code that utilizes pip and setuptools/distribute to acquire, build and upload your packages to Chishop.Here's how it works:1. Install Chishop somewhereIt's a Django project so this one is pretty simple. However you can follow a guide I have written to easily deploy to ep.io.Ensure you add your Chishop credentials to your ~/.pypirc file as these will be used later on.2. Install Requisite sudo pip install requisite3. Create a frozen pip requirements fileYou are already using using pip and requirements.txt right? Good. First generate a frozen pip requirements file: cd my_projectpip freeze -r requirements.txt frozen-requirements.txt4. Upload to your Chishop repositoryreq requisite -r frozen-requirements.txt --repository=my_chishop --clean-cacheThat's it. In your deploys you can use this new repository by specifying an --index-url see here at the top of your frozen-requirements.txt file. pip will then use that server to download dependencies. In fact, it will actually create one of these for you and dumped into your current directory named req-requirements.txt with all editable packages solidified.A word to the wiseDo note that when using this method of dependency management, it's advisable that you take reasonable security precautions. If you happen to be using Chishop and Requisite on ep.io, your data will be on the public internet. Be sure to abstain from including sensitive data in your python packages. Chishop could also use some help implementing a more secure mode of operation. Even then, be wary. Requirements: · Python


requisite Related Software