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

如何使用Pip(OS X)在虚拟环境中安装Python包,python,python-3.x,pip,Python,Python 3.x,Pip,编辑: 我将结束这个问题,因为它发生的原因与我最初的假设不同,而且重新问这个问题更清楚: 这篇文章没有直接回答最初的问题,但是是一篇非常有用的概述 根据下面的讨论,问题是即使在 $ source ~/PycharmProjects/Practice/venv/bin/activate $ pip install numpy numpy安装在/usr/local/lib/python2.7/站点软件包中 这可能是什么原因呢 原件: 通过自制在OS X上使用Python: 我花了一天的时间

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

这篇文章没有直接回答最初的问题,但是是一篇非常有用的概述


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

$ source ~/PycharmProjects/Practice/venv/bin/activate 
$ pip install numpy 
numpy安装在
/usr/local/lib/python2.7/站点软件包中

这可能是什么原因呢

原件:

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

我花了一天的时间试图解决这个问题,但要么我得到一个
必须提供home或prefix/exec前缀的错误,要么我试图安装的软件包进入了完全错误的位置:

$ 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")
用这个

然后我得到一个新的错误

`Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/.../pip-install-0fvveq3v/package/'
搜索SO提供了各种可能。但是
pip安装
抛出上述错误或安装在错误的位置。i、 e.解决方案首先涉及导致错误的因素


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

本节提供了介绍性概述。下面是一个更详细的例子。但是,如果您在创建虚拟环境目录后删除它,它可能会破坏它。从头开始创建一个新项目:
$cd~/PycharmProjects;python3-mvenv-newenv
;激活:
$source newenv/bin/Activate
;安装内容:
$pip Install colorama
(与
pip3安装相同,仅当venv激活时);检查:
ls~/PycharmProjects/newenv/lib/python3*/站点包
;停用:
$Deactivate

然后您可以为Pycharm尝试此解决方案:。PyCharm确实与
virtualenv
捆绑在一起,可以定制,请查看PyCharm特定资源:以及PyCharm中的

如果您已经安装了PyPI的主流,默认情况下,它将使用安装了
virtualenv
的python解释器创建新的环境。但是在创建新的env时,可以使用另一个Python解释器:
$virtualenv-p python3.7 newenvname

关于错误
distutilsoptioner错误:必须提供home或prefix
-请检查并获取解决方案。python和pip之间的自制映射是。正常的
pip安装--user
是在自制的Python中进行的,但是有一些变通方法。MacOS系统Python不提供
pip
,但它可以针对任何特定的Python版本进行安装、重新安装或升级。原始的非酝酿安装程序也可用于所有Python版本:

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


最后,您可能希望确保没有对macOS的系统python使用
pip
。Shell命令,如
$brew info python
哪个pip
哪个pip3
pip3-V
哪个python3
可以帮助您查看实际使用的内容。由于macOS的默认$PATH过去是
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
,所以macOS二进制文件(包括python)可能优先于某些自制安装(包括python)。如果是这样,如果需要的话,可以通过
~/.bashrc
导出自定义路径。

但是,您不是在这里的虚拟环境中,您是否错误地退出了它?您需要
source venv/bin/activate
而不是
cd venv
@Gazzer只需执行
source~/PycharmProjects/Practice3/venv/bin/activate
。你不需要自己去那里。之后,您的
pip
命令将指向虚拟环境中的二进制文件,因此只需执行
pip安装numpy
。您是如何创建虚拟环境的?一旦您
激活
pip
命令将执行正确的操作,无需任何选项。谢谢,但仍然存在相同的问题
pip install colorama
将软件包放入
/usr/local/lib/python2.7/site packages/
是否有任何不可见的主设置会导致Python将其放在这里?@Gazzer您已经使用
brew
安装了Python?是的,使用brew。@Gazzer然后这是一个使用
brew
的程序。这解释了
“必须提供home或prefix/exec prefix——不是两者都提供”)
问题,但不是pip安装问题。(此外,该问题不仅仅是Brew问题,它发生在常规python安装中)
`Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/.../pip-install-0fvveq3v/package/'