Packaging your code is important.
You’ll need to package your code first before sharing it with other developers.
The Python Packaging Guide provides an extensive guide on creating and maintaining Python packages.
If you’re writing an open source Python module, PyPI, more properly known as The Cheeseshop, is the place to host it.
If you want to install packages from a source different from PyPI, (say, if your packages are proprietary), you can do it by hosting a simple http server, running from the directory which holds those packages which need to be installed.
Showing an example is always beneficial
Say if you are after installing a package called MyPackage.tar.gz, and assuming this is your directory structure:
Go to your command prompt and type:
$ cd archive $ python -m SimpleHTTPServer 9000
This runs a simple http server running on port 9000 and will list all packages (like MyPackage). Now you can install MyPackage using any Python package installer. Using Pip, you would do it like:
$ pip install --extra-index-url=http://127.0.0.1:9000/ MyPackage
Having a folder with the same name as the package name is crucial here. I got fooled by that, one time. But if you feel that creating a folder called MyPackage and keeping MyPackage.tar.gz inside that, is redundant, you can still install MyPackage using:
$ pip install http://127.0.0.1:9000/MyPackage.tar.gz
Pypiserver is a minimal PyPI compatible server. It can be used to serve a set of packages to easy_install or pip. It includes helpful features like an administrative command (-U) which will update all its packages to their latest versions found on PyPI.
One simple option for a personal PyPi server is to use Amazon S3. A prerequisite for this is that you have an Amazon AWS account with an S3 bucket.