pip3 没有为 python3 安装软件包

use*_*888 3 python python-2.7 python-3.x

当我使用 python3 运行我的 python 脚本时,我收到以下错误:

回溯(最近一次调用):文件“rea_scrape.py”,第 2 行,在导入请求中 ModuleNotFoundError: No module named 'requests'

当我运行时pip3 install requests,很明显请求已安装。

已满足要求:/Library/Python/2.7/site-packages (2.18.4) 中的请求 已满足要求:/Library/Python/2.7/site-packages (来自请求) (2018.4.16) 中的 certifi>=2017.4.17 ) 要求已经满足:chardet<3.1.0,>=3.0.2 in /Library/Python/2.7/site-packages (from requests) (3.0.4) 要求已经满足:idna<2.7,>=2.5 in /Library /Python/2.7/site-packages (from requests) (2.6) 需求已经满足:urllib3<1.23,>=1.21.1 in /Library/Python/2.7/site-packages (from requests) (1.22)

然而,仔细检查这些消息似乎表明 pip3 正在安装 Python2.7 的包,这不是我的意图。

结果是我使用该pip3命令安装的任何内容都无法导入到由python3.

我该如何解决?

仅供参考,我正在使用 MacOS High Sierra。

use*_*838 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())
Run Code Online (Sandbox Code Playgroud)

在您的情况下,第一行必须是#!usr/bin/python2. 您可以通过pip3 -V在终端上使用来改变它。

解决此问题的另一种方法是完全卸载您的 pip3 安装并再次重新安装 python3-pip

  1. curl https://bootstrap.pypa.io/get-pip.py | 蟒蛇3
  2. python3 从这个答案:How to install pip for Python 3 on Mac OS X?

另外请看这个问题:pip3.4 -V 指的是python2.7安装 这个问题应该完全回答你。