2013-12-18 23 views
1

在Python3.2.5下安裝geopy-0.96.2之後,出現以下內容: 「導入器錯誤:無法找到模塊geopy」。運行下面的腳本在Postgresql中使用導入器錯誤geopy

CREATE OR REPLACE FUNCTION geopy_test() RETURNS text AS $$ 
from geopy.geocoders import GoogleV3 
geolocator = GoogleV3() 
address, (latitude, longitude) = geolocator.geocode("Kungsgatan 20 Stockholm") 
return address 
$$ LANGUAGE plpython3u; 
SELECT geopy_test() 

回答

1

當我花了差不多一天試圖讓geopy地理編碼模塊的Python和我的Postgres 9.3安裝發揮好。這是我如何解決它...

對PostgreSQL 9.3(Windows 8.1中)安裝Python3.2.5

1)通過下載的python-3.2.5.msi安裝Python3.2.5。 2)打開C:\ Python32 \ DLLs,將python3.dll複製到.... \ PostgreSQL \ 9.3 \ lib,並將其重命名爲python32.dll 3)打開控制面板 - >高級系統設置 - >環境變量找到PATH變量,如果添加路徑:C:\ Python32; C:\ Python32 \ Scripts 4)打開pgAdminIII並運行SQL查詢:CREATE EXTENSION plpython3u; 5)以下SQL查詢可以用來檢查安裝:

CREATE OR REPLACE FUNCTION pyversion() RETURNS text AS $$ 
import sys 
return sys.version + '\n' + '\n'.join(sys.path) 
$$ LANGUAGE plpython3u; 
SELECT pyversion() 

這將產生類似:

"3.2.5 (default, May 15 2013, 23:07:10) [MSC v.1500 64 bit (AMD64)] 
C:\Python32\lib\site-packages\setuptools-2.0.1-py3.2.egg 
C:\WINDOWS\SYSTEM32\python32.zip 
C:\Python32\Lib 
C:\Python32\DLLs 
C:\Program Files\PostgreSQL\9.3\data 
C:\Program Files\PostgreSQL\9 (...)" 

在PostgreSQL 9.3(Windows 8.1中的Python3.2.5安裝geopy)

1) Download geopy-0.96.2.tar.gz from https://pypi.python.org/pypi/geopy 
2) Unzip into any directory. 
3) Open command prompt and go to this directory 
4) run: python setup.py install 
5) Open control panel -> Advanced system settings -> Environmental variables 
Create new variable 
PYTHONPATH = C:\Python32\Lib\site-packages;C:\Python32\Lib\site-package\geopy-0.96.2-py3.2.egg 
6) Open pgAdminIII and run the SQL query: 
DROP EXTENSION IF EXISTS plpython3u CASCADE; 
CREATE EXTENSION plpython3u; 
7) The following SQL query can be used to check the install: 

CREATE OR REPLACE FUNCTION pyversion() RETURNS text AS $$ 
import sys 
return sys.version + '\n' + '\n'.join(sys.path) 
$$ LANGUAGE plpython3u; 
SELECT pyversion() 

現在這應該產生類似:

3.2.5 (default, May 15 2013, 23:07:10) [MSC v.1500 64 bit (AMD64)] 
C:\Python32\lib\site-packages\setuptools-2.0.1-py3.2.egg 
C:\Python32\lib\site-packages\geopy-0.96.2-py3.2.egg 
C:\WINDOWS\SYSTEM32\python32.zip 
C:\Python32\Lib 
C:\Python32\DLLs 
C:\Program Files\PostgreSQL\9.3\data 
C:\Program Files\PostgreSQL\9.3\bin 
C:\Python32 
C:\Python32\lib\site-packages 

8)你現在應該可以控制PostgreSQL

CREATE OR REPLACE FUNCTION geopy_test() RETURNS text AS $$ 
from geopy.geocoders import GoogleV3 
geolocator = GoogleV3() 
address, (latitude, longitude) = geolocator.geocode("Kungsgatan 20 Stockholm") 
return address 
$$ LANGUAGE plpython3u; 
SELECT geopy_test() 

這給了我下面的答案中測試geopy:

「國王街20,北城,斯德哥爾摩,瑞典」

如果你得到一個導入器錯誤,找不到模塊,一定要檢查你的安裝是否包含上面的路徑:SELECT pyversion()