依赖环境python第三方库pyproj安装及避坑

项目使用pyproj库进行对不同坐标系shapefile数据进行重新投影,具体实现形式是读取.prj文件,获取wkt定义的wkid,然后定影project投影函数,使用投影函数批量几何图形。
根据shapely官方文档 ,使用了pyproj库定义了投影函数进行几何处理,官网例子使用了pyproj 2.X以上版本。

import pyproj

from shapely.geometry import Point
from shapely.ops import transform

wgs84_pt = Point(-72.2495, 43.886)

wgs84 = pyproj.CRS('EPSG:4326')
utm = pyproj.CRS('EPSG:32618')

project = pyproj.Transformer.from_crs(wgs84, utm, always_xy=True).transform
utm_point = transform(project, wgs84_pt)

复制代码

pyproj库依赖proj库,根据pyproj官方文档指引,首先安装proj

  1. 下载32位64位安装程序。
  2. 运行OSGeo4W安装程序。
  3. 选择 “高级安装 “并按下一步。
  4. 选择 “从互联网安装 “并按下一步。
  5. 选择一个安装目录。在大多数情况下,默认的建议是可以的。按 “下一步”。
  6. 选择 “本地软件包目录”。在大多数情况下,默认的建议是可以的。按下一步。
  7. 选择 “直接连接 “并按下一步。
  8. 选择download.osgeo.org服务器并按下一步。
  9. 在 “Commandline_Utilities “下找到 “proj”,点击 “New “栏中的软件包,直到出现你要安装的版本。
  10. 在 “Commandline_Utilities “下找到 “sqlite3″,点击 “New “栏中的软件包,直到出现你要安装的版本。
  11. 按下一步,安装PROJ。

注意上面第“11”点特别重要,如果不安装“sqlite3”,会在安装pyproj的时候提示“缺少sqlite3.dll”,官网文档缺少了这一步

安装好proj库之后,C盘目录会出现OSGeo4W文件夹,这里面是proj库的安装路径。
记得把 “C:\OSGeo4W\bin\”目录添加到系统环境路径下,否则会提示以下错误:

>>> import pyproj
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\ArcGIS10.3\lib\site-packages\pyproj\__init__.py", line 69, in <module>
    from pyproj._list import (  # noqa: F401
ImportError: DLL load failed: 找不到指定的模块
复制代码

安装pyproj前在windows命令行上设定proj目录:

set PROJ_DIR=C:\OSGeo4W\
复制代码

下一步使用pip来安装PyPI上的库:

pip install pyproj
复制代码

最后在命令行进入python输入import pyproj确认是否成功安装:

import pyproj
复制代码

注意

直接import pyproj成功后,在运行调用了pyproj的py文件可能还会提示“ DLL load failed”,要把“C:\OSGeo4W\bin\”目录下的所有DLL文件拷贝到pyproj库的安装路径下(“C:\Python27\ArcGIS10.3\Lib\site-packages\pyproj\”)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享