python调用cmd运行GDAL报错解决:ERROR 1: PROJ
欢迎将文章分享到朋友圈 如需转载,请在后台回复“转载”获取授权
这个问题爆的有点莫名其妙,代码~环境基本没什么大的变化,好端端就报错了,原先的代码运行了很久才发现,没有结果?摸排了好久都没发现问题。直到pycharm和spyder更新后,总算是发现了报错信息:
之前安装好python+GDAL+‘python gdal’后,利用python调用cmd运行gdal的裁剪~转换~等功能都很正常。
直到最近,不正常了,先上报错:
ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
ERROR 1: Failed to process SRS definition: EPSG:4326
就在python中出问题,不论是使用os还是subprocess.call,都无法正常运行。
一开始我重装了gdal2.4,突然可以运行重投影。但是第二天又报错了,又重装,无果,尝试更换3.7.8python和3.8的python,无果(插一句,发现3.8更新里多进程可以实现内存共享了,下次看看多3.8进程的威力吧)。后来我试着用python2.7,可以运行,但是不想用。
问题一步一步排除之后,查找问题,在stack overflow上发现有人解决了:
https://stackoverflow.com/questions/56472933/pyinstaller-executable-fails
有兴趣的可以去看看,解决的办法也是很粗暴。但并没有把核心问题解决,我估计下次还会出错。
题主真是个自问自答的小可爱!
我试着,也顺利解决了:
看来问题出在os上
import os
import sys
os.environ['PROJ_LIB'] = os.path.dirname(sys.argv[0])
附录:
spyder更新了,越来越接近pycharm的样式了,用的不是很习惯,但还是慢慢接受新鲜事物吧。
唯一困难的就是第三方库之间的迁移,因为换成了python3.8,所以之前3.7.3的库并不能直接copy。又担心硬复制回头会出问题,还是乖乖的一个一个conda install吧。
一个有趣的灵魂WW
往期
百度网盘下载很慢吧,Pandownload之后的新工具-亿寻
- 使用ETag进行session的降级
- 关于oracle中的反连接(r3笔记第95天)
- 用Python爬取网易云音乐的用户评论文本
- grunt任务之seajs模块打包
- 【Java提高十八】Map接口集合详解
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven
- Thinking in React
- 【Java提高十六】集合List接口详解
- JS的内建函数reduce
- Error: Cannot find module 'gulp-clone'问题的解决
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化
- Angular源码分析之$compile
- TensorFlow实例: 手写汉字识别
- iOS引入JavaScriptCore引擎框架(一)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 最大连续子序列和(最大子数组和)四种最详细的解法
- 玩转 Linux 环境下日期的语法
- dubbo学习之事件通知实践
- Panasonic Programming Contest 2020 A ~~C
- 采用递归生成排列
- UCF Local Programming Contest 2015 A~~H
- python之循环控制语句
- python之结合if条件判断和生成随机数的相关知识,完成石头剪刀布的游戏
- AtCoder Beginner Contest 172
- python的import与 from……import
- 题目 1159: [偶数求和]
- 回溯法求组合问题
- P1567 统计天数
- P1089 津津的储蓄计划(模拟训练)
- 二分练习 --D - Trailing Zeroes (III)