Skip to content

Instantly share code, notes, and snippets.

qwcode / gist:2822510
Created May 29, 2012
breakup pip pull request 511
View gist:2822510
break up
part1: MERGED
- system_site_packages option for reset_env
- pypi_server.PyPIProxy.setup() occur in a sitecustomize file (not pth file) to prevent pkg_resources.working_set corruption that corrupts the sys.path
part2: MERGED
- migrate existing tests to new module
part3: MERGED
qwcode / gist:2993698
Created Jun 26, 2012
pip install options breakdown
View gist:2993698
option Right align Center align
This This This
column column column
will will will
be be be
left right center
aligned aligned aligned
qwcode / gist:3088149
Created Jul 11, 2012
non-recursive force upgrade
View gist:3088149

Upgrading a package, w/o upgrading dependencies that are already satisifed

suppose the following packages: a, b, c, d

with the following dependency relationships between their versioned distributions

  • a-1
  • b
View gist:3828683
Usage: pip wheel [OPTIONS] PACKAGE_NAMES...
Creates wheel archives from your requirements and place into ./wheels
(requires distribute>0.6.28 and wheel)
-w --wheel-dir <DIR> //alternative dir to place wheels into
--force-rebuild //rewrite existing wheels
--unpack-only <DIR> //unpack to dir, for manual building with " bdist_wheel"
-r, --requirement <FILENAME>
-f, --find-links <URL>
View gist:3828762
- a new "pip install" config option that offers name-based (i.e. not url-based) caching.
- the "--download-cache" option would stay as it is, and not be altered
- the package-cache dir would just contain packages (e.g. "nose-1.2.tar.gz", or lxml-2.5[..].whl), anything you've installed while using it.
- the package-cache would be turned off by default, since the user assumes a certain amount of risk/responsibility in using it (no hash checking)
- the package-cache (if turned on) would be checked prior to using the PackageFinder (which searches pypi and findlinks)
(if the req was "nose", any nose version in the package-cache would "win", unless --upgrade is specified)
- package-cache offers an alternative to this workflow:
- pip install -d DIR PACKAGES
View gist:4231109
bundle Create pybundles (archives containing multiple packages)
freeze Output all currently installed packages (exact versions) to stdout
help Show available commands
install Install packages
search Search PyPI
show Output installed distributions (exact versions, files) to stdout
uninstall Uninstall packages
View gist:4247512
pip install [options] <package> [<package> ...]
General Options:
-V, --version
show version and exit
View gist:4270246
virtualenv myVE
source myVE/bin/activate
cd myproject
pip -e .[testing] #installs project into myVE in develop mode with dependencies and the testing extras
pip install somepkg #install something else you want to try
qwcode / gist:6040828
Created Jul 19, 2013
vendor pkg_resources/setuptools analysis
View gist:6040828

3 problems to be solved:

  1. making pip a self-sufficient wheel installer
  2. removing the headache of users being responsible for managing the setuptools build dependency themselves (most notably a pain in non-virtualenv environments),
  3. the burden/fragility of supporting any pip version with any setuptools version.

solutions for #1:

  1. vendor pkg_resources
  2. emulate pkg_resources using the already vendored distlib (#909 )