已安装 Geohash 模块但导入错误

Geohash Module installed but import error

我在 Windows 10 中使用 ipython Jupyter notebook。我已经在 cmd 中使用 pip install geohash 安装了 Geohash。 当我尝试使用 geohash( import geohash) 时出现以下错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-7-840910eb012f> in <module>()
----> 1 import geohash

ImportError: No module named 'geohash'

再次检查是否安装了 geohash 然后在我尝试重新安装时出现以下消息:

C:\Users\Himal Acharya>pip install geohash
Requirement already satisfied (use --upgrade to upgrade): geohash in c:\users\himal acharya\anaconda3\lib\site-packages
Requirement already satisfied (use --upgrade to upgrade): docutils>=0.3 in c:\users\himal acharya\anaconda3\lib\site-packages (from geohash)

我再次卸载geohash。我从 github 手动安装 geohash 但出现同样的问题: 导入错误

pip install python-geohash

这应该可以解决问题。

找到了另一种方法,而且效果很好。

来自 gd-inm 来源:https://github.com/vinsci/geohash/issues/4

  1. 将包名重命名为 geohash 而不是 Geohash
  2. 更改 init.py 以从 .geohash(模块名称前面有一个点)而不是从 geohash
  3. 导入

I had the same issue - if you rename the package name to be geohash rather than Geohash and then change init.py to import from .geohash (with a dot in front of the module name) rather than from geohash, the package should work for Python 3.5.2.

pip uninstall Geohash
pip install geohash2

它将安装 https://github.com/DBarthe/geohash 版本,该版本与 vinsci 完全相同,但符合 Python 3 导入语法(DBarthe 做了@PoonLany 在其回答中解释的内容)

我遇到了与 python3 相同的问题,这让我使用“pygeohash”而不是 geohash。

安装

pip install pygeohash

用法

import pygeohash as pgh

pgh.encode(42.6, -5.6)
# >>> 'ezs42e44yx96'

pgh.encode(42.6, -5.6, precision=5)
# >>> 'ezs42'

pgh.decode('ezs42')
# >>> ('42.6', '-5.6')

pgh.geohash_approximate_distance('bcd3u', 'bc83n')
# >>> 625441