今天在研究python liblas时,发现使用的IDE PyCharm的一个小功能缺陷:在项目运行配置中的环境变量里无法以追加的方式修改当前环境变量的值,而且又看了下IDEA,相关功能的UI都是一样的,所以应该是JetBrains系的IDE都有同样的问题。
首先,windows下使用python liblas时,除了pip装liblas包以外,还要有相关的原生库,否则import的时候会直接报错。好在win下可以直接通过OSGeo4W安装预编译好的liblas库( https://trac.osgeo.org/osgeo4w/ ),装好后会有专用的命令行环境快捷方式,看了下和Visual Studio的Developer Command Line Prompt一样,会在这个专用命令行环境里设置一堆环境变量,这时直接运行python项目依然会报错,查了下原来是在加载liblas原生库时寻找Path环境变量里的路径找不到出的错,而专用命令行已经把OSGeo4W的bin加进去了…
其实这问题简单做法就是把bin直接加到系统或当前用户Path里就可以了,但是我只是需要在IDE里运行项目时用到这个Path,一般时候就算用lasinfo之类的也会从OSGeo4W提供的命令行快捷方式进入,所以就开始研究PyCharm能不能专门针对项目运行时加入这个Path,结果发现虽然运行时配置里有环境变量的设置,加各种新的环境变量,以及用当前已有的环境变量(系统)都没问题,但就是不能特殊处理向现有环境变量里加新值,这点VS还有很多IDE很早以前就有支持了,具体还可以看JetBrains官方issue里的这个问题:Provide ability to reference parent environment variables in Run Configuration dialog,可以看到,这需求提了有年头了,怎么就是不给加呢…
最后只好先临时用了个蹩脚的方法:
os.environ['PATH'] = os.environ['PATH'] + ";C:\\OSGeo4W64\\bin"
import liblas之前先执行下这个,虽然代码看着恶心点,但达到了目的,以后有更好的解决办法再来更新…
博主友情提示:
如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。