【问题标题】:pip install vs python3 -m pip installpip install vs python3 -m pip install
【发布时间】:2019-11-18 07:23:19
【问题描述】:

我在 conda 环境中工作,试图在其中安装一个包。在我以前的计算机上,该环境中的pip install <package name> 工作。但是在这台新的 Mac 上,如果我这样做,然后尝试在那个环境中导入包,它就不起作用了。

这个:

pip install SpeechRecognition

不同于

python3 -m pip install SpeechRecognition

后者在下面起作用,但前者不起作用:

>>>import speech_recognition
>>>

此外,文件似乎指向同一个地方:

(test) ~$ which python
/anaconda3/envs/test/bin/python
(test) ~$ which python3
/anaconda3/envs/test/bin/python3
(test) ~$ which pip
/anaconda3/envs/test/bin/pip

一切都在测试环境中运行。

那么发生了什么?我该如何解决?我希望能够在隔离环境中可靠地测试包。

更新

只是为了表明 pip 和 pip3 在我的机器上都使用 3.7,而不是 2.7:

(base) ~$ conda activate test
(test) ~$ which pip3
/Library/Frameworks/Python.framework/Versions/3.7/bin/pip3
(test) ~$ which pip
/anaconda3/envs/test/bin/pip
(test) ~$ pip --version
pip 19.1.1 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip (python 3.7)

或者,这就是问题所在?该 pip 使用与测试环境不同的 3.7?如果有,为什么?

【问题讨论】:

    标签: python pip anaconda


    【解决方案1】:

    在许多系统上,pip 使用 Python 2 解释器,而 pip3 使用 Python 3 解释器。仅安装 Python 3 时,pippip3 相同。了解使用哪个解释器的一种方法是读取文件pip 的第一行。

    python3 -m pip install 等价于pip3,但至少明确表明您要使用python3

    在您的情况下,看起来pip 使用 Python 2 解释器,但使用了已为 Python 3 安装的模块。这很奇怪。

    我建议您使用python3 -m pip install 而不是依赖命令pip

    【讨论】:

    • which 似乎暗示它们都是一样的,不过……
    • 我更新了关于我的环境的注释,并且 pip 和 pip3 似乎处于不同的环境中。但是,在我的示例中,我使用的是 pip 而不是 pip3...
    • /anaconda3/envs/test/bin/pip的第一行是#!/anaconda3/envs/test/bin/python@maxime
    • 所以我对配置有些头疼。也许我应该从这个 mac 中删除 python 2.7x,但它是操作系统默认的,所以我犹豫了。我将尝试显式使用 pip3 并查看是否可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 2015-06-01
    • 2016-04-15
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    相关资源
    最近更新 更多