[Twisted-Python] Python3 twistd daemon for Ubuntu 14.04 alternatives

Glyph Lefkowitz glyph at twistedmatrix.com
Thu Feb 23 01:36:59 MST 2017


> On Feb 22, 2017, at 9:42 AM, Hynek Schlawack <hs at ox.cx> wrote:
> 
>>> I don’t see how that’s tedious since a compute does that for me.
>>> Although I don’t see any value at wheeling them (and some packages
>>> cannot be wheeled); my CI builds a venv and puts it into a container.
>>> There’s nothing tedious about it at all.
>> I find the idea of running throwaway environments to generate a big blob of tarball'd python+libs, then copying said tarball to actual containers, a rather retrograde step by comparison with established package/build infrastructure tools.
> 
> I have to disagree here:  I don’t want build tools of any kind in my final containers therefore I build my artifacts separately no matter what language.  Of course you can just build the venv on your build server without wheeling up a temporary container and then package it using Docker or DEB or whatever.  You should be separating building and running anyway so Python – as much as I’d like Go-style single binaries too – is in no way special here.  The nice thing about temporary containers though is that I can do all of that on my Mac.

It's worth pointing out that if you don't want a Go build toolchain in your container, you have exactly the same problem.  And a Go build toolchain (read: dependency/vendoring management toolchain) actually requires _more_ care and feeding than the analogous Python in my experience; the reason it's superficially appealing is that you can "cheat" and copy the binary over from a development environment, but this is not a robust CI solution.

Go's build toolchain has many features worth envying but most of its advantages have to do with deployments _outside_ of containers, where you have to ship to customer environments with fraught and unknown system configurations.  If you have any level of control over your deployment target, Go and, say, Python with PEX are ~equivalent.

-glyph



More information about the Twisted-Python mailing list