[Python] pip installing in global site-packages instead of virtualenv

Discussão em 'Python' iniciado por Stack, Janeiro 10, 2025.

  1. Stack

    Stack Membro Participativo

    Using pip3 to install a package in a virtualenv causes the package to be installed in the global site-packages folder instead of the one in the virtualenv folder. Here's how I set up Python3 and virtualenv on OS X Mavericks (10.9.1):

    I installed Python3 using Homebrew:

    ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
    brew install python3 --with-brewed-openssl


    Changed the $PATH variable in .bash_profile; added the following line:

    export PATH=/usr/local/bin:$PATH


    Running which python3 returns /usr/local/bin/python3 (after restarting the shell).

    Note: which python3 still returns /usr/bin/python though.

    Installed virtualenv using pip3:

    pip3 install virtualenv


    Next, create a new virtualenv and activate it:

    virtualenv testpy3 -p python3
    cd testpy3
    source bin/activate


    Note: if I don't specify -p python3, pip will be missing from the bin folder in the virtualenv.

    Running which pip and which pip3 both return the virtualenv folder:

    /Users/kristof/VirtualEnvs/testpy3/bin/pip3


    Now, when I try to install e.g. Markdown using pip in the activated virtualenv, pip will install in the global site-packages folder instead of the site-packages folder of the virtualenv.

    pip install markdown


    Running pip list returns:

    Markdown (2.3.1)
    pip (1.4.1)
    setuptools (2.0.1)
    virtualenv (1.11)


    Contents of /Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages:

    __pycache__/
    _markerlib/
    easy_install.py
    pip/
    pip-1.5.dist-info/
    pkg_resources.py
    setuptools/
    setuptools-2.0.2.dist-info/


    Contents of /usr/local/lib/python3.3/site-packages:

    Markdown-2.3.1-py3.3.egg-info/
    __pycache__/
    easy-install.pth
    markdown/
    pip-1.4.1-py3.3.egg/
    setuptools-2.0.1-py3.3.egg
    setuptools.pth
    virtualenv-1.11-py3.3.egg-info/
    virtualenv.py
    virtualenv_support/


    As you can see, the global site-packages folder contains Markdown, the virtualenv folder doesn't.

    Note: I had Python2 and Python3 installed before on a different VM (followed these instructions) and had the same issue with Python3; installing packages in a Python2 based virtualenv worked flawlessly though.

    Any tips, hints, … would be very much appreciated.

    Continue reading...

Compartilhe esta Página