I wanted the simplest (i.e. most lightweight) possible repository capable of serving packages in such a way as that Python’s pip would be able to install them. These notes are so that I don’t forget how I solved the task.

I create a new directory on a Web server (e.g. nginx) and permit the server to show a directory listing. Then I install the packages I need into directories named by package:

. ├── airports │ └── airports-0.2.tar.gz └── paho-mqtt └── paho-mqtt-1.5.0.tar.gz

That’s it.

On the client side, I configure /etc/pip.conf so that pip uses my repository. The directives are documented.

[global] index = http://10.53.1.1/pip/ index-url = http://10.53.1.1/pip/ trusted-host = 10.53.1.1

That’s it.

$ python3.7 -m venv j0 $ source j0/bin/activate (j0) $ pip install airports Looking in indexes: http://10.53.1.1/pip/ Collecting airports Downloading http://10.53.1.1/pip/airports/airports-0.2.tar.gz (144kB) |████████████████████████████████| 153kB 5.2MB/s Collecting paho-mqtt (from airports) Downloading http://10.53.1.1/pip/paho-mqtt/paho-mqtt-1.5.0.tar.gz (99kB) |████████████████████████████████| 102kB 5.9MB/s Installing collected packages: paho-mqtt, airports Running setup.py install for paho-mqtt ... done Running setup.py install for airports ... done Successfully installed airports-0.2 paho-mqtt-1.5.0 (j0) $

Rune calls in to tell me about pip2pi which can pull in packages from pip and install them into a local directory which I then serve or make available somehow. Basically an easy way to copy packages and their dependencies.