I did a bit of work looking at running pip from a .zip using pyzzer, a little while ago. What were the fixes to pip which you mentioned? There were a number of places where pip needed changing:
1. How it handles cacert.pem when running from a .zip (default_cert_path in pip/locations.py) 2. Identifying the running pip rather than any installed pip 3. Expecting an installed setuptools to check its version to confirm that wheels can be supported 4. The wheel build code, which uses subprocess, assumes running from the file system >From what I can see 2 and 3 have been addressed in recent changes, but I >couldn't tell from a quick reading whether 1 has been addressed (there have >certainly been code changes in this area) or whether 4 has been addressed. Regards, Vinay Sajip -------------------------------------------- On Mon, 21/10/13, Paul Moore <[email protected]> wrote: Subject: [Distutils] A portable version of pip To: "Distutils" <[email protected]> Date: Monday, 21 October, 2013, 11:39 With all of the current interest in bundling pip with the Python distribution, I had a sudden thought. Vinay has developed a package called pyzzer (https://pypi.python.org/pypi/pyzzer) that bundles up Python modules into runnable single-file executables. Using a command pyzzer -m pip:main -l t64 -o pipsa.exe -s "#!python" -r <path-to-pip>\pip you can build a single-file executable version of pip that can install wheels (it can't install sdists until setuptools is installed, because installing sdists depends on having setuptools at install time). The -s "#!python" is not needed on Unix as the default is "#!/usr/bin/env python". Also the -l t64 is a Windows requirement to get an exe - you can produce a cross-platform pyz archive without it (see the pyzzer docs for details). This requires the latest development version of pip (which contains a fix for running pip from an uninstalled zipfile) and the following patch to pip\__init__.py: Change: from pip import cmdoptions to: import pip.cmdoptions cmdoptions = pip.cmdoptions This fixes a recursive-import issue - I'll update pip "real soon now" (TM) for this. This is just an experiment at the moment - I've done minimal testing but it seems to work as I'd expect. It may be worth thinking about, though - either as an alternative to bundling (a bit late, I know) or as a way of providing pip for earlier versions of Python. Hope this is of interest. Paul _______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig _______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
