[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