首页 > 解决方案 > pip3 没有为 python3 安装包

问题描述

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

回溯(最后一次调用):文件“rea_scrape.py”,第 2 行,在导入请求中 ModuleNotFoundError:没有名为“请求”的模块

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

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

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

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

我该如何解决?

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

标签: pythonpython-3.xpython-2.7

解决方案


看起来您的 pip3 安装指向了错误的 python 版本。如果您查看其中的文件/usr/local/bin,您会看到一个名为 pip3.xml 的文件。在哪里可以看到它指向的 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. 卷曲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的安装 这个问题应该可以完整回答你。


推荐阅读