How to force virtualenv to install latest setuptools and pip from pypi?

16,646

Solution 1

It's not supported for security reasons.

Using virtualenv.py as an isolated script (i.e. without an associated virtualenv_support directory) is no longer supported for security reasons and will fail with an error. Along with this, --never-download is now always pinned to True, and is only being maintained in the short term for backward compatibility (Pull #412).

I can't use the --extra-search-dir option either because it's currently broken https://github.com/pypa/virtualenv/issues/327

Looks like the only option is to simply wait for the virtualenv maintainers to update the bundled packages?

Solution 2

You can upgrade pip after installing your virtualenv by using pip install -U pip.

I'm sure you could write a bootstrap-script to automate this step.

Solution 3

I needed the latest setuptools library, and the --extra-search-dir flag wasn't working for me (even though it's been fixed apparently).

However, making a virtualenv without setuptools and then installing directly from PyPi worked great. E.g. to set up a virtualenv called test:

virtualenv --no-setuptools test
source test/bin/activate
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
easy_install pip

Testing with

python -c 'import setuptools; print setuptools.__version__'

shows the right version.

Solution 4

I ran into the same problem, and I fixed it by upgrading setuptools.

If env is your virtual env, run the following:

$ env/bin/pip install --upgrade setuptools

Share:
16,646

Related videos on Youtube

cdwilson
Author by

cdwilson

Updated on July 12, 2022

Comments

  • cdwilson
    cdwilson almost 2 years

    Is it possible to force virtualenv to use the latest setuptools and pip available from pypi? Essentially, I'm looking for the opposite of the --never-download flag.

    Currently, when I make a new virtualenv, it uses the local (old) versions that come bundled with virtualenv.

    $ v.mk testvenv
    New python executable in testvenv/bin/python
    Installing setuptools............done.
    Installing pip...............done.
    $ pip show setuptools
    ---
    Name: setuptools
    Version: 0.6c11
    Location: /Users/cwilson/.virtualenvs/testvenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
    Requires: 
    $ pip search setuptools
    [...]
    setuptools                - Easily download, build, install, upgrade, and
                                uninstall Python packages
    INSTALLED: 0.6c11
    LATEST:    0.7.2
    [...]
    
  • pymarco
    pymarco over 7 years
    very nice solution!