Answers:
由OSGeo4W分发的QGIS通常带有自己的Python安装和独立于“常规” Python安装的软件包。
将Python软件包安装到OSGeo4W发行版中的最简单方法是打开OSGeo4W Shell,然后从那里使用pip。这会将软件包安装到QGIS使用的Python发行版中(在我的情况下位于,C:\OSGeo4W64\apps\Python27\
相应模块位于)C:\OSGeo4W64\apps\Python27\Lib\site-packages
。您还可以pip list
在OSGeo4W Shell和常规Windows Shell(cmd.exe)中执行常规操作,并比较输出以查看可能缺少的软件包。
如果您不想将软件包安装到两个Python安装中,也可以尝试将PythonPath更改为将软件包从一个安装包含到另一个安装中。
编辑:此答案针对原始问题,该问题与pip一起安装要在Windows中与QGIS一起使用的模块。从那以后,OP修改/完善了这个问题,所以这个答案现在有点广泛了。
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 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本身。
python -m pip install wheel setuptools c:\path\to\rasterio-<ver>-win_amd64.whl