Search code examples
pythonpippypi

Downsides of pip install <url>?


I have recently started using Golang and I am impressed by how the "go get" command can install packages from VCS. Then I came across the gopkg.in website which creates nicely formatted URLs for these repositories.

Personally I use Python a lot and the process of publishing packages to PyPI seems to be quite some work. I know "pip install <url>" works. But is there any downsides?

To elaborate more, I have a domain name: pypi.xyz and I would like allow short urls like: pypi.xyz/user/package so people can install it like this: "pip install pypi.xyz/user/package". The URL will infact point to a tar.gz archive from github.

I have tested the concept with a bit.ly short url. So I know it works. But I am wondering if people would not be interested or if there are obvious downsides of this process.

I am new to Python, so please accept my apologies if this is a dumb idea.


Solution

  • Personally I use Python a lot and the process of publishing packages to PyPI seems to be quite some work.

    Except it isn’t. If you do the initial setup right (sensible MANIFEST.in, one-time package registration, pypi credentials setup, pip install twine wheel, optional PGP setup), it’s as easy as

    ./setup.py sdist bdist_wheel
    twine upload -s dist/mypackage-0.1.0*
    

    And you can write a shell alias to automate that.

    To elaborate more, I have a domain name: pypi.xyz and I would like allow short urls like: pypi.xyz/user/package so people can install it like this: "pip install pypi.xyz/user/package". The URL will infact point to a tar.gz archive from github.

    This is a waste of time and $15. Writing out a GitHub git URL is:

    • simpler (not that much typing)
    • can be replaced by a simple shell function that would take username/repo, would add the rest and run pip install
    • faster (GitHub does not need to produce a tarball for you)
    • trusted by people (unlike some shady pypi.xyz domain)

    What’s more is, good software development practices include having stable releases, usually available for download forever. Please keep that in mind, don’t do git-only distribution.

    PyPI uploads really are the way to go.