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

Glyph Lefkowitz glyph at twistedmatrix.com
Thu Feb 23 15:24:06 MST 2017


> On Feb 23, 2017, at 2:51 AM, Phil Mayers <p.mayers at imperial.ac.uk> wrote:
> 
> On 23/02/17 10:27, Hynek Schlawack wrote:
> 
>> What I don't quite understand is how people can be in love with Go’s
>> static linking but complaining about Virtualenvs in deployments.
>> Unwieldy as virtualenvs are: *for Python code* they are exactly that:
>> statically linked build artifacts.  The principles are very similar,
>> the execution is arguably better for Go.
> 
> Well, for one thing, Python virtualenv are problematic w.r.t. being relocatable. That alone makes them harder to use than a Go binary.

Yeah, this is the big issue.  Hence: pex ;-).  Or, 'pile of wheels' and 'venv on the fly (without dev tools)' as the installation mechanism on the target environment.

> But honestly I think we're talking at cross purposes. I'm not complaining about virtualenv. We use them quite successfully.

I think this has been a super useful discussion, not at cross purposes at all!  There's been a little bit of back-and-forth and repeating certain things, but not useless.

> I'm trying to point out that *some* might find the system Python attractive because they can use OS-supplied python packages in lieu of the effort of setting up a binary build infrastructure.

So, I think everyone has a different perspective here; Hynek seems to be saying "all containers all the time" ;-).  But from my perspective, linux distros provide a super useful service by providing a gigantic integrated build environment for TONS of C code.  Avoiding the time and cost associated with setting up, i.e., an ImageMagick dev environment is _WELL_ worth the complexity of distro packages.  Multiply this out by dozens of dependencies that a large application or site ends up needing, and distro packaging pays for itself many times over.

However, avoiding having python-dev and a C compiler installed in your build environment seems like a bit of a fool's errand to me.  It's superficially appealing, but I think that our guidance to most people should be "always have a build environment so you can build extension modules, any non-trivial project will eventually need a few".  The work required to have a _python_ dev environment is orders of magnitude below, say, OpenSSL or ImageMagick or Avahi or (et cetera).

> But I'm clearly not getting my point across, so I'm going to stop now.

Really I think that this has been a great exchange of ideas, and though we're veering off topic a little bit, I want there to be more discussion among systems operators how Twisted can and should be deployed, operationalized, monitored, etc.  Twisted even has weird little edge-cases of its own (like the plugin system) which can sometimes complicate things.  So by all means please don't feel like you need to stop sharing your view.

-glyph





More information about the Twisted-Python mailing list