【问题标题】:Not able to import module after installing using pip使用 pip 安装后无法导入模块
【发布时间】:2017-03-06 13:04:09
【问题描述】:

我正在尝试将一个名为 geoip2 的模块从 pypi 导入 python,它不包含在其标准库中。

我打开命令提示符并输入:

pip install geoip2

命令提示符返回

Successfully installed geoip2-2.4.2

安装后我尝试使用 IDLE 导入它:

import geoip2.webservice

返回错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    import geoip2.webservice
ImportError: No module named 'geoip2'

虽然它已经安装,但我无法使用它。我怎样才能防止这种情况?注意我用的是python 3.6

【问题讨论】:

  • 输入pip show geoip2 时的输出是什么?是否显示安装正确?
  • 你不应该使用pip3 install geoip2吗?
  • 首先使用pip freeze检查模块是否安装
  • @turtle 它在​​我的情况下工作。我认为您的 geoip2 安装不正确。您可以先通过命令 virtualenv 创建 virtualenv。然后激活那个环境。然后在那个 pip install geoip2 然后在 python shell 中运行该语句它不会给出任何错误。

标签: python python-3.x module ip-address compass-geolocation


【解决方案1】:

可能是您安装了两个不同版本的 Python。尝试使用已安装 geoip 的 Python 版本打开 IDLE。

【讨论】:

  • 即使在尝试 'import geoip2' 之后,shell 也会返回错误,因为它找不到模块
  • 在 cmd 中打开 python 时我可以导入 geoip2 但我不能在 shell 或解释器中
  • 当你在 Python2.x 等一个版本中使用 idle 并在 Python3.x 等另一个版本中使用 pip 安装包时会发生这种情况。所以请确保你只安装了一个版本的 Python。
【解决方案2】:

代替:

import geoip2.webservice

尝试做:

import geoip2
from geoip2 import webservice

由于未安装geoip2.webservice,因此geopip2 是,.webservice 是该模块的函数对象。

此外,您可以通过以下方式避免每次都输入geoip2.webservice

import geoip2
from geoip2 import webservice as gws

那么任何时候你想运行.webservice函数,你都可以使用gws

或者:

只要做:

import geoip2

然后在你的脚本中你可以调用它:

geoip2.webservice(#do stuff here or however you call the function)

【讨论】:

  • 尝试 import geoip2.webservice 它不会给出任何错误,正如你所说的 webservice 是该模块的一个对象,所以这不仅仅是按类型检查是一个模块,你可以在你的虚拟中看到该模块环境也。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 2017-09-21
相关资源
最近更新 更多