如何在Windows上为QGIS安装第三方python库?


18

如何在Windows的QGIS插件上使用第三方库?我已经为客户开发了使用rasterio和numpy的插件,但是他在安装rasterio和numpy时遇到了问题。

实际上rasterio和numpy已安装在其主系统Python(C:\ Python27)中,但我需要QGIS Python才能识别它。

怎么做到呢?

Answers:


23

由OSGeo4W分发的QGIS通常带有自己的Python安装和独立于“常规” Python安装的软件包。

将Python软件包安装到OSGeo4W发行版中的最简单方法是打开OSGeo4W Shell,然后从那里使用pip。这会将软件包安装到QGIS使用的Python发行版中(在我的情况下位于,C:\OSGeo4W64\apps\Python27\相应模块位于)C:\OSGeo4W64\apps\Python27\Lib\site-packages。您还可以pip listOSGeo4W Shell和常规Windows Shell(cmd.exe)中执行常规操作,并比较输出以查看可能缺少的软件包。

如果您不想将软件包安装到两个Python安装中,也可以尝试将PythonPath更改为将软件包从一个安装包含到另一个安装中。

编辑:此答案针对原始问题,该问题与pip一起安装要在Windows中与QGIS一起使用的模块。从那以后,OP修改/完善了这个问题,所以这个答案现在有点广泛了。


3
要在OSGeoW shell中使用pip,我必须做的python -m pip install wheel setuptools c:\path\to\rasterio-<ver>-win_amd64.whl
筹码

13

Numpy默认情况下安装在QGIS(独立版,OSGeo4W版)中。对于rasterio,存在许多问题。我知道rasterio功能强大且易于使用(我使用它),但是为什么在拥有PyQGIS的所有功能的同时,在QGIS插件中使用rasterio?(它是为Python Shell或脚本设计的,不与QGIS / PyQGIS一起使用,如shapefile的Fiona

在Linux或Mac OS X(Unix系统)中,QGIS使用标准的Python安装(独立于QGIS),并且如果易于安装或升级Python模块(默认情况下还安装了许多编译器)

在Windows中,默认情况下未安装Python,而QGIS将安装自己的版本。要安装纯Python模块(不带C,C ++库),您需要使用解决方案(QGIS Standalone和Python模块在OSGeo4W Python中安装Python setuptools为OSGeo4W安装PySAL

但是对于需要编译的模块(默认情况下没有编译器),这并不容易。您可以尝试在QGIS Python site_folder中复制/粘贴已安装的模块,但是存在问题。

Rasterio需要针对已安装的GDAL库进行编译,例如,如果从Christoph Gohlke非官方Windows Binaries for Python扩展包进行安装,则我不确定QGIS使用的GDAL版本是否相同(对于dll库)

如果仅使用numpy和rasterio,为什么不使用独立脚本?


第一个链接不起作用
尼克

已更正,谢谢,我针对特定的光栅问题修改了文本
基因

用户需要从QGIS使用它。此外,QGIS上的栅格计算器已损坏,因此我无法直接使用。
乔治席尔瓦

0

在Qgis 2.18.28的python 2.7.14控制台中,这对我有用。它避免了必须使用带有绝对python路径的提示。

import subprocess
subprocess.check_call(['python', '-m', 'pip', 'install', 'openpyxl'])

根据pip开发人员的说法,不支持pip.main或pip._internal.main。https://pip.pypa.io/en/stable/user_guide/#using-pip-from-your-program 我修改了建议sys.executable为“蟒蛇”,因为在QGIS是QGIS本身。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.