classification
Title: Ship Python with a package manager
Type: enhancement Stage: resolved
Components: Installation Versions: Python 3.4
process
Status: closed Resolution: later
Dependencies: Superseder:
Assigned To: Nosy List: Matt.Hickford, eric.smith, r.david.murray
Priority: normal Keywords:

Created on 2012-12-13 21:53 by Matt.Hickford, last changed 2013-01-07 22:15 by r.david.murray. This issue is now closed.

Messages (5)
msg177437 - (view) Author: Matt Hickford (Matt.Hickford) * Date: 2012-12-13 21:53
Python should ship with a full-featured package manager. Why?

1. Most programmers would rather use a reliable maintained library for a common task than roll their own code. Then the programmer can get on with solving their unique problems. This assumes the library is convenient to install (and licensed appropriately). 

2. Other languages ship with package managers - Ruby with Gem, Nodejs with Npm. As a result, these languages have extremely successful open-source communities encouraging sharing. https://github.com/languages  Yes, Python has a strong open-source community, but there's a real hurdle to publishing packages. Nodejs is still in short trousers, but https://npmjs.org/ will shortly outnumber Python's package index. 

If you believe sharing is worthwhile, then you should want to make it easy.

Python has a decent package manager (distribute + pip) but it's ironically complicated to install. On Windows 64 bit (a very popular platform), this requires installing a package from source. You, dear Reader, surely find that easy, but it's still a big an ask for anyone new to programming. You perhaps recommend Python to friends wishing to learn programming. Could you explain over the phone how to install a package such as 'requests'? The Django homepage actually forsakes Python package management and encourages new users to build from source.

You only have to write 'python install package' into Google or read http://stackoverflow.com/questions/4750806/how-to-install-pip-on-windows to see just how much *pain* new users have with package management.

I humbly suggest pip (+ distribute), which happens to be the community's de facto standard.
msg177440 - (view) Author: Eric V. Smith (eric.smith) * (Python committer) Date: 2012-12-13 23:44
Because this is a new feature, it could only be added to Python 3.4. Changing versions.
msg177442 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2012-12-14 02:56
Matt, thanks for your interest.  This possibility has been discussed, so you aren't the only one who thinks it should happen.

However, I don't think this is an appropriate issue for the tracker.  This is part of an ongoing discussion and process on distutils-sig and python-dev.  It is also a PEP level feature, which pretty much means there should be an approved PEP before there is an open issue for implementing/integrating it.  I would recommend you check out the past discussions and join in on the efforts to improve the current situation.

If other devs disagree with me the issue can be reopened.
msg179285 - (view) Author: Matt Hickford (Matt.Hickford) * Date: 2013-01-07 21:57
Please could you share a link to a previous discussion about packaging?

I'm interested in user experience 'Python should ship with first class
package management like other languages' rather than technical details
'Python should ship with distutils rather than setuptools.
msg179287 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-01-07 22:15
I'm afraid the discussions are many and lengthly and on several lists (python-dev, distutils-sig, probably also python-list and python-ideas), and that you will rarely find a discussion of "whether" without an accompanying discussion of "what".  I'm sorry I can't give you specific links.

The thing to do is probably to look at the recent archives of distutils-sig, and sign up, and open a conversation there once you have a basic idea of the landscape.
History
Date User Action Args
2013-01-07 22:15:45r.david.murraysetmessages: + msg179287
2013-01-07 21:57:22Matt.Hickfordsetmessages: + msg179285
2012-12-14 02:56:22r.david.murraysetstatus: open -> closed

nosy: + r.david.murray
messages: + msg177442

resolution: later
stage: resolved
2012-12-13 23:44:32eric.smithsetversions: - Python 2.6, Python 3.1, Python 2.7, Python 3.2, Python 3.3, Python 3.5
nosy: + eric.smith

messages: + msg177440

components: + Installation
type: behavior -> enhancement
2012-12-13 21:53:14Matt.Hickfordcreate