I’ve finished renaming pyinstall to its new name: pip. The name pip is a acronym and declaration: pip installs packages.
I’ve also added a small feature intended for Google App Engine users, allowing you to zip and unzip packages in an environment. For instance:
$ pip zip --list
In ./lib/python2.5/site-packages:
No zipped packages.
Unzipped packages:
paste (98 files)
pygments (64 files)
tempita (7 files)
weberror (31 files)
webob (22 files)
webtest (9 files)
nose (43 files)
setuptools-0.6c9-py2.5.egg (43 files)
simplejson (28 files)
$ pip zip webob
Zip webob (in ./lib/python2.5/site-packages/webob)
Right now this doesn’t work well with egg directories (i.e., packages installed with easy_install), though that shouldn’t be too hard to resolve. pip install itself does not install packages into egg directories (it does install eggs, which is to say it installs all the egg metadata and works fine with pkg_resources).
I don’t really use buildout myself, but I would like to throw it out there that I think someone should create a pip recipe as an alternative to zc.recipe.egg. There’s not really a stable programmatic API in pip at this point, but with no consumers of the API it feels like premature design to settle on something now — integrate with pip and we can figure out what that stable API should be. If you integrate buildout, probably another useful feature would be an option have to pip freeze write the packages out to a setting in your buildout.cfg.
Automatically generated list of related posts:
- Workingenv is dead, long live Virtualenv! A lot of people have found workingenv useful, but it’s...
- Using pip Requirements Following onto a set of recent posts (from James, me,...
- pyinstall pybundles Update: pyinstall has been renamed to pip (per the suggestions...
- pyinstall: A New Hope Note: pyinstall has been renamed to pip Ever been frustrated...
- Monkeypatching and dead ends Bill de hÓra and then Patrick Logan picked up on...
I just noticed that
easy_install pip
doesn’t add pip.exe to Scripts folder on Windows. Addingentry_points = {'console_scripts': ['pip=pip:main']}
to setup.py fixes that. I think it’s a good idea to do that even if you don’t want to depend on setuptools.You know what’s funny? [This is funny](http://search.cpan.org/dist/pip/).
OK, new name: pippiintpip (“pippiintpip installs Python packages, it is not the Perl Installation Program”)
That’s weird… I looked around for something called “pip” and only came upon a command-line utility for redirecting pipes to things like editors. Gentoo had it packaged, but not Ubuntu. But I didn’t see the Perl thing at all.
Yeah, pip is a great Perl installer.
How about pypi? Python Package Installer …
pypi is just too much like pypy. At some point in time, you’re going to have to explain to a new user that you meant “pypi”, not “pypy” – and they’re just going to raise their eyebrow at you.
How about “pyp” – for “python pip”? Or maybe not… :)
This ain’t “whoa there we were first!!” kind of thing, btw, I was just terribly amused that people in two different “P-language” communities had the exact same naming idea.
@Aristotle
Maybe both projects should merge into yet another pip: one that installs for any language running on the Parrot VM :)
Isn’t really a name space issue? Look, we could name one:
Perl\pip
And the other
Python\pip
Wouldn’t it really be:
Perl::pip
And the other
python.pip
pip actually looks like it has some similarities.
.p5i
files are the same as pip requirement files, and.p5z
are like pybundles. Are there conventions for declaring dependencies in Perl? The Perl pip has a terrible search score — if you just search for “pip” it hardly shows up at all.The “META.yml” spec describes a standard for declaring dependencies of Perl modules. See here:
http://module-build.sourceforge.net/META-spec.html
This file is automatically generated when you “make dist” a CPAN module, so it is usually available. You can see an example for the “pip” distribution itself:
http://search.cpan.org/~adamk/pip-0.13/ http://search.cpan.org/src/ADAMK/pip-0.13/META.yml
Mark
Good luck with this!
I particularly like the aspects highlighted at http://www.diigo.com/annotated/079484ba977b115c009b8faeb710e92e
trying to figure how integrate it with a web server (and especially virtualenv). Any idee? Should I only have to set path and VIRTUAL_ENV environnemnt variable ?
If you are using mod_wsgi, look at: http://code.google.com/p/modwsgi/wiki/VirtualEnvironments — it should all be applicable here. If you are using HTTP proxying from a web server, it’ll all be automatic so long as you start the server from within the environment.
thanks for the link. Exactly what I was looking for.
two things:
1- about the name pypy (python interperter build on python) and pypi (python package index aka:cheeseshop) are already a mess, may as well leave it as pip since that is perl.
2- could you explain this thing about egg? I personally like not-zipped eggs as they let me read the source of libraries failing and/or poor documentation, it’s great for development.
How about “pint”?
“For inexperienced user this package requires a pint of Python to be installed” (sounds like minced “Python” cocktail – not too brilliant for an ad, brobably, but illustrates what can happen to your site-libs over the time if you WON’T USE it)
It also could be thought as an abbreviation of “Python INsTaller” without “s”, because it doesn’t install for Python for System, but rather system for Python. Missing “s” can be the Sign that pythonS are Silent Snakes that do not hiSS on inStall.
I’ve just started a buildout recipe for pip: http://www.bitbucket.org/gawel/gprecipepip/overview/
Looks promissing. The recipe run a pip install command with subprocess.call() (cant use main() directly because you use sys.exit()) then run zc.recipe.egg.Scripts with all eggs found in parts/name/lib/pythonXX/site-packages and src/. Works like a charm :)