- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编辑1:忘了提及python,我使用的是嵌入式python。
<小时/>我已经从 GIS Internals 下载了 Windows GDAL 二进制文件。前提:
目录结构:
Parent
|gnuplot
|mysoft.exe
|gdal
|python-embedded
|jvm
|gsl2
|mybinaries
|mysoftlaunch.bat
bat 文件由 GDAL 二进制文件提供,我已对该文件及其放入的目录进行了相关更改。
@echo off
set SDK_ROOT=%~dp0gdal\
set SDK_ROOT=%SDK_ROOT:\\=\%
set GNUPLOT_ROOT=%~dp0gnuplot\
set PYTHON_ROOT=%~dp0python-3.7.3-embed-amd64\
@echo %SDK_ROOT%
@echo %GNUPLOT_ROOT%
goto setenv
if "%1" == "setenv" goto setenv
%comspec% /k "%SDK_ROOT%SDKShell.bat" setenv %1
goto exit
:setenv
@echo Setting environment for using the GDAL and MapServer tools.
if "%2"=="hideoci" goto hideoci
set ocipath=0
set _path="%PATH:;=" "%"
for %%p in (%_path%) do if not "%%~p"=="" if exist %%~p\oci.dll set ocipath=1
if "%ocipath%"=="0" goto hideoci
@echo WARNING: If you encounter problems with missing oci libraries then type:
@echo SDKShell hideoci
goto setenv2
...
...
:setenv2
@echo at set env 2
SET "PATH=%SDK_ROOT%bin;%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\proj6\apps;%SDK_ROOT%bin\gdal\apps;%SDK_ROOT%bin\ms\apps;%SDK_ROOT%bin\gdal\csharp;%SDK_ROOT%bin\ms\csharp;%SDK_ROOT%bin\curl;%GNUPLOT_ROOT%bin\;%SDK_ROOT%gsl2\bin\;%PATH%"
SET "GDAL_DATA=%SDK_ROOT%bin\gdal-data"
SET "GDAL_DRIVER_PATH=%SDK_ROOT%bin\gdal\plugins"
SET "PYTHONPATH=%SDK_ROOT%bin\gdal\python\osgeo;%SDK_ROOT%bin\gdal\python;%SDK_ROOT%bin\ms\python;%PYTHON_ROOT%"
SET "PROJ_LIB=%SDK_ROOT%bin\proj6\SHARE"
SET "LD_LIB_PATH=%SDK_ROOT%gsl2\lib"
@echo done setting variables
start "MYSOFT" cmd /c java -jar "%~dp0mysoft.exe%"
@echo started mysoftware
exit
:exit
这里有一些事情:
gdal_merge.py
.setx
一旦进入bat文件并直接运行软件,因为如果用户更改软件的目录并再次运行脚本,Windows中的路径大小限制将被耗尽,这将是一场灾难。 (为什么我从 bat 文件启动该软件。)该脚本应该为启动的所有子进程设置环境变量。
我可以确认gdal_translate
工作得很好。 [我确实指定了它的相对路径,而不是从环境中调用它。]
工作流程:
gdal_merge.py
.错误:
from osgeo import gdal
ModuleNotFoundError: No module named 'osgeo'.
预期的解决方案:从bat文件设置路径(到嵌入式python、jvm、gdal{所有必需的,如gdal_data、gdal_driver、二进制文件的路径等})后,启动一个Java软件,该软件继承那些启动gdal_merge.py
的环境变量。文件。
按照以下方式:
String path = System.getProperty("user.dir");
ProcessBuilder pb = new ProcessBuilder();
pb.inheritIO();
pb.command(Paths.get(path+"/python-embedded/python.exe").toString(),Paths.get(path+"/gdal/....../python/scripts/gdal_merge.py").toString(),...{other parameters required for gdal_merge.py});
<小时/>
PS:
Paths.get(x+"abc/def/").toString()
- 我用来将 *NIX 样式路径转换为 Windows 样式路径。
最佳答案
根据Issue28245 Python bugs ,这是一个故意的功能。嵌入式Python与您的系统环境完全隔离。
要包含此嵌入式 python 查找包的路径,您需要编辑 pythonxx._pth 文件。
只需在每一行中添加一个路径即可。不需要变量。您也可以添加相对路径。
._pth 文件示例:
pythonxx.zip # default value
. # default value
..\gdal\bin\gdal\python\
..\gdal\bin\gdal\python\osgeo\
..\gdal\bin\gdal\python\scripts\
..\gdal\bin\ms\python\
这就像一个魅力。
关于java - 使用 bat 脚本更新 env 后,从 java 调用 GDAL 的可移植二进制文件时,模块 osgeo (embd.py) 出现导入错误。路径变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56883778/
在 maven 存储库 上,我看到显示了两个 geotools 发行版: – 其中一个名为 Boundless,提供版本 19.0 和 19.1。 – 另一种称为 Osgeo,18.4 和 19.2。
我需要导入 osgeo.ogr 模块到 virtualenv python 程序。 全局 python 有这个模块: user@ubuntu:~/$ python Python 2.7.8 (defa
我最近安装了 OSGEO ( http://download.osgeo.org/ ),其中包括 python 和 gdal。然而,我刚刚意识到有许多 gdal 库没有包含在这个包中,例如 gdal_
首先,我很抱歉提出这个简单的问题。我需要计算一定数量的 gem 属性(面积、周长、圆度、长轴和短轴等)。我正在使用 GDAL/OGR读取我的多边形的 shapefile 格式。我想问的是: 是否有使用
我几个小时以来一直在尝试这个问题,但我无法解决它。我正在使用 this在 Windows 上设置 GeoDjango 的链接。我收到以下错误消息,但不知道该怎么做。所有环境变量都在 Windows 中
编辑1:忘了提及python,我使用的是嵌入式python。 我已经从 GIS Internals 下载了 Windows GDAL 二进制文件。前提: 目录结构: Parent |gnuplot
我是一名优秀的程序员,十分优秀!