> On Feb 23, 2017, at 2:51 AM, Phil Mayers <p.may...@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


_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to