Hey there,
So I’m one of the authors of PEP453, the original implementor of ensurepip, and
a pip maintainer. I know that pip (and other language level package managers)
have a sort of love/hate (sometimes more of one or the other!) relationship
with the downstream Linux packagers. I know that PEP453 also puts more focus
on this in general since it's now a recommendation for pip to be installed
if Python is.
So I'd like to say that If there are problems I'd like to help fix them.
Especially if there are problems with pip that make you nervous/upset/sad with
having it tied so closely to Python. Also generally about making less headache
for distros where pip is involved (pip and the OS package manager stomping on
each other etc).
To start off this goal I've filed https://github.com/pypa/pip/issues/1668 to
figure out how pip can get our defaults to the point where most users will be
installing to ~/.local/ instead of the system location. If there's more things
pip can do I'd love to know about them, or if ensurepip or the PEP453 processes
have something I can help with too :)
-----------------
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
>From Larry's release announcement:
==================
Python 3.4 includes a range of improvements of the 3.x series, including
hundreds of small improvements and bug fixes. Major new features and
changes in the 3.4 release series include:
* PEP 428, a "pathlib" module providing object-oriented filesystem paths
* PEP 435, a standardized "enum" module
* PEP 436, a build enhancement that will help generate introspection
information for builtins
* PEP 442, improved semantics for object finalization
* PEP 443, adding single-dispatch generic functions to the standard library
* PEP 445, a new C API for implementing custom memory allocators
* PEP 446, changing file descriptors to not be inherited by default
in subprocesses
* PEP 450, a new "statistics" module
* PEP 451, standardizing module metadata for Python's module import system
* PEP 453, a bundled installer for the *pip* package manager
* PEP 454, a new "tracemalloc" module for tracing Python memory allocations
* PEP 456, a new hash algorithm for Python strings and binary data
* PEP 3154, a new and improved protocol for pickled objects
* PEP 3156, a new "asyncio" module, a new framework for asynchronous I/O
To download Python 3.4.0 visit:
http://www.python.org/download/releases/3.4.0/
==================
Direct link to the What's New guide:
http://docs.python.org/3/whatsnew/3.4.html
Cheers,
Nick.
--
Nick Coghlan
Red Hat Hosted & Shared Services
Software Engineering & Development, Brisbane
Testing Solutions Team Lead
Beaker Development Lead (http://beaker-project.org/)
Hey folks,
One of the new features coming in Python 3.4 is Victor Stinner's changes
to allow runtime configurable memory allocators, and the associated
"tracemalloc" module to record details of memory allocations within the
CPython runtime and extensions modules.
Victor is looking for feedback on the GUI he's creating to explore those
snapshots, so I figured I would pass his request along here.
Cheers,
Nick.
P.S. I also tracked down the BZ for the PySide vs Python 3 issue Victor
mentions below: https://bugzilla.redhat.com/show_bug.cgi?id=1045780
---------- Forwarded message ----------
From: Victor Stinner <victor.stinner(a)gmail.com>
Date: 14 March 2014 09:54
Subject: [Python-Dev] tracemallocqt: GUI to analyze tracemalloc snapshots
To: Python Dev <Python-Dev(a)python.org>
Hi,
To prepare my conference on tracemalloc for Pycon Montréal next month,
I wrote a GUI to analyze tracemalloc snapshots: "tracemallocqt".
https://bitbucket.org/haypo/tracemallocqt
It looks like that:
http://www.haypocalc.com/tmp/tracemallocqt_python34.png
I'm looking for testers and feedback on the GUI. You may be curious to
see which parts of Python is allocating the most memory, or maybe test
your favorite application to check if it leaks memory or how its
memory footprint can be reduced.
To run tracemallocqt, you have to install PySide and get tracemalloc
snapshots. It looks like most Linux distributions provide PySide
packages.
To take snapshots, see tracemalloc documentation:
http://docs.python.org/dev/library/tracemalloc.html
In short, use Python 3.4 with "-X tracemalloc=25" command line option
and then call:
---
import pickle, tracemalloc
snap = tracemalloc.take_snapshot()
with open("dump.pickle", "wb") as fp: pickle.dump(snap, fp, 2)
snap = None
---
It's more fun with at least 2 snapshots to compare them ;-)
I force pickle version 2 because tracemallocqt currently only works on
Python 2. (Mostly because I don't see how to get PySide for Python 3
on Fedora 20.)
Not all applications work on Python 3.4 right now, you can use the
pytracemalloc project which is tracemalloc for Python 2.5-3.3. Sorry,
you have to patch Python and recompile it. Here are instructions to
install a patched Python 2.7 with tracemalloc:
http://pytracemalloc.readthedocs.org/#manual-installation
If you don't want to take snapshot, you can compare these two files:
http://www.haypocalc.com/tmp/python34_start.picklehttp://www.haypocalc.com/tmp/python34_after_import.pickle
The source browser will not find Python source code, because the
snapshots contain absolute paths.
Victor
_______________________________________________
Python-Dev mailing list
Python-Dev(a)python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com
--
Nick Coghlan | ncoghlan(a)gmail.com | Brisbane, Australia