pip3无法为python3安装软件包。

4
当我使用python3运行我的脚本时,会出现以下错误:
Traceback (most recent call last): File "rea_scrape.py", line 2, in import requests ModuleNotFoundError: No module named 'requests'
当我运行pip3 install requests时,看起来已经安装了requests。
Requirement already satisfied: requests in /Library/Python/2.7/site-packages (2.18.4) Requirement already satisfied: certifi>=2017.4.17 in /Library/Python/2.7/site-packages (from requests) (2018.4.16) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Library/Python/2.7/site-packages (from requests) (3.0.4) Requirement already satisfied: idna<2.7,>=2.5 in /Library/Python/2.7/site-packages (from requests) (2.6) Requirement already satisfied: urllib3<1.23,>=1.21.1 in /Library/Python/2.7/site-packages (from requests) (1.22)
然而,更仔细地查看这些消息似乎表明pip3正在为Python 2.7安装软件包,这不是我的意图。
结果是,使用pip3命令安装的任何内容都无法被导入到由python3运行的脚本中。
我该如何解决这个问题?
FYI,我正在使用MacOS High Sierra。
1个回答

8

看起来你的pip3安装指向了错误版本的python。如果你查看/usr/local/bin目录下的文件,你会发现一个名为pip3的文件。在这里你可以看到它指向哪个版本的python。在我的情况下,该文件内容如下:

#!/usr/bin/python3

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

在你的情况下,第一行必须是#!usr/bin/python2。您可以在终端上使用pip3 -V来验证。另一种解决方法是完全卸载pip3安装,并重新安装python3-pip
以下是两种方法:
  1. curl https://bootstrap.pypa.io/get-pip.py | python3
  2. python3 来自这个答案:如何在Mac OS X上为Python 3安装pip?
此外,请查看这个问题:pip3.4 -V指向python2.7安装,这个问题应该可以完全回答您的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接