WindowsでQGISのサードパーティのPythonライブラリをインストールする方法


18

WindowsのQGISプラグインでサードパーティライブラリを使用するにはどうすればよいですか?私は顧客のためにrasterioとnumpyを使用するプラグインを開発しましたが、rasterioとnumpyのインストールに問題があります。

実際には、rasterioとnumpyはメインシステムPython(C:\ Python27)にインストールされていますが、それを認識するためにQGIS Pythonが必要です。

どうすればできますか?

回答:


23

OSGeo4Wによって配布されるQGISには、通常、独自のPythonインストールと、「通常の」Pythonインストールから独立した独自のパッケージが付属しています。

PythonパッケージをOSGeo4Wディストリビューションにインストールする最も簡単な方法は、OSGeo4Wシェルを開いてそこからpipを使用することです。これにより、QGISが使用するPythonディストリビューションにパッケージがインストールされ、私の場合はにC:\OSGeo4W64\apps\Python27\あり、それに応じてモジュールがにありますC:\OSGeo4W64\apps\Python27\Lib\site-packages。またpip listOSGeo4Wシェルと通常のWindowsシェル(cmd.exe)内で定期的に実行し、出力を比較して、不足しているパッケージを確認することもできます。

パッケージを2つのPythonインストールにインストールしたくない場合は、PythonPathを変更して、あるインストールから別のインストールにパッケージを含めることもできます。

編集:この回答は、WindowsのQGISで使用されるモジュールをインストールするためのpipに関する元の質問に向けられています。OPは質問を編集/改良したため、この回答は今や少し広範になりました。


3
OSGeoWシェルで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シェルまたはスクリプト用に設計されたもので、QGIS / PyQGISで使用されるのではなく、シェープファイルのFionaとして使用されます)

LinuxまたはMac OS X(Unixシステム)では、QGISは標準のPythonインストール(QGISに依存しない)を使用し、Pythonモジュールのインストールまたはアップグレードが簡単な場合(デフォルトで多くのコンパイラもインストールされます)

Windowsでは、Pythonはデフォルトではインストールされず、QGISは独自のバージョンをインストールします。純粋なPythonモジュール(C、C ++ライブラリなし)をインストールするには、ソリューションがあります(QGISスタンドアロンおよびPythonモジュールOSGeo4W PythonへのPython setuptoolsのインストール、またはOSGeo4W用のPySALのインストール

ただし、コンパイルする必要があるモジュール(デフォルトではコンパイラーなし)の場合、簡単ではありません。QGIS Python site_folderにインストールしたモジュールをコピー/貼り付けできますが、問題があります。

Rasterioは、インストールされたGDALライブラリに対してコンパイルする必要があります。たとえば、Python拡張パッケージ用のChristoph Gohlke非公式Windowsバイナリからインストールする場合、QGISで使用されるGDALのバージョンが同じかどうかはわかりません( dllライブラリ)

numpyとrasterioのみを使用する場合、独立したスクリプトを使用しないのはなぜですか?


最初のリンクが機能しない
ニックス

修正、おかげで、私は特定の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を 'python'に変更しました。Qgisではqgis自体であるためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.