代码之家  ›  专栏  ›  技术社区  ›  Gazzer

如何使用PIP(OS X)在虚拟环境中安装python包

  •  2
  • Gazzer  · 技术社区  · 5 年前

    编辑: 我将结束这个问题,因为它发生的原因与我最初的假设不同,重新问这个问题更清楚:

    Pip installs packages in the wrong directory with virtualenv

    这个 accepted answer 不是直接回答最初的问题,而是一个非常有用的概述。


    根据下面的讨论,问题是即使在

    $ source ~/PycharmProjects/Practice/venv/bin/activate 
    $ pip install numpy 
    

    numpy安装在 /usr/local/lib/python2.7/site-packages
    为什么会这样?

    原件:

    通过自制在OS X上使用python:

    我一整天都在努力解决这个问题,但我要么 must supply either home or prefix/exec-prefix -- not both 错误,或者我尝试安装的包完全不在正确的位置:

    $ pip3 --version
    pip 18.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
    $ cd venv
    $ pip3 install numpy
    ..... [snip with following error:]
    "must supply either home or prefix/exec-prefix -- not both")
    

    使用此 hint

    $ pip3 install numpy -t . 
    

    然后我得到一个新的错误,

    `Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/.../pip-install-0fvveq3v/package/'
    

    四处寻找,所以有各种可能涉及 pip install setuptools . 但是 pip install 抛出上述错误或安装在错误的位置。也就是说,解决方案首先涉及到导致错误的一些因素。

    我尝试使用python.org安装程序,但它根本没有安装pip。(自定义安装程序显示了选中的选项,但大小为零)。

    1 回复  |  直到 5 年前
        1
  •  1
  •   stop.climatechange.now    5 年前

    本文提供了一个介绍性概述。 nice tutorial . 这里是一个 good summary 更多细节。但是,如果你 renamed moved 虚拟env目录创建后,可能会将其破坏。从头开始创建新的: $ cd ~/PycharmProjects; python3 -mvenv newenv 激活; $ source newenv/bin/activate ;安装: $ pip install colorama (同) pip3 install 仅当Venv激活时);检查: ls ~/PycharmProjects/newenv/lib/python3*/site-packages 停用: $ deactivate

    然后你可以试试这个Pycharm的解决方案: how to associate a virtual environment with a python project in pycharm . Pycharm真的来了 捆扎 具有 virtualenv 可能是定制的,请查看pycharm特定的资源: creating virtual environments installing packages 在Pycharm。

    如果你已经安装了Pypi的主流 virtualenv ,默认情况下,它将使用python解释器创建新的环境, 虚拟现实 安装时 . 但有可能 specify 在创建新env时使用另一个python解释器: $ virtualenv -p python3.7 newenvname

    关于错误 DistutilsOptionError: must supply either home or prefix -请检查 this this 解决方案。python和pip之间的自制映射是 described here . 正常人 pip install --user disabled 在自制的巨蟒中,有解决方法。马科斯 系统蟒蛇 不提供 pip ,但它可以为任何特定的python版本安装、重新安装或升级 manually . 所有的python版本都可以使用原始的非酿造安装程序: https://www.python.org/downloads/mac-osx/

    默认情况下没有 pip.conf 但是它可以手工创建来定制东西。所有可能的pip.conf位置(每个用户、每个venv和全局/系统范围,以及它们如何相互覆盖)都是 listed here . 如果有人面临问题,他们可以使用 pip config list command 查看其活动配置,或 locate pip.conf find 它。

    最后,您可能希望确保不使用 匹普 反对MacOS的系统python。shell命令,例如 $ brew info python , which pip , which pip3 , pip3 -V , which python3 可以帮助您了解实际使用的内容。因为MacOS的默认$path曾经是 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin ,stock macos二进制文件(包括python)可能优先于一些自制安装(包括python)。如果是这样,可以通过 ~/.bashrc 如果需要的话。