GRASSがQGIS 3.6で機能しない


20

OSGEO4wを使用してQGISをバージョン3.6に更新しました

GRASSスクリプトを実行しようとすると、次のエラーメッセージが表示されます。

エラーメッセージ

このアルゴリズムは実行できません:-(指定されたGRASS 7フォルダー "C:\ OSGEO4〜1 \ bin \ bin"には有効なGRASS 7モジュールのセットが含まれていません。処理設定ダイアログに移動し、GRASS 7フォルダーは正しく構成されています

パスが存在しないようですが、変更する場所が見つかりませんでした。バージョン2.xのように、処理設定のオプションではなくなりました。

QGIS 3.6でこれらの処理スクリプトを実行する方法はありますか。その場合、必要な設定をどのように調整できますか?


編集:これは私の処理オプションがどのように見えるかです

処理パラメータ


QGIS 3.4.5(新しいLTR)を使用しようとしたことがありますが、このバージョンで動作します。
ahmadhanb

最初にGRASSを起動し、次にQGISをロードすると、すべて順調です。そうでなければ、そうではありません。
ジムマクラフリン

回答:


30

ショートカット「QGIS Desktop 3.6.0 with GRASS 7.6.0」でQGISを開くと、すべてが正常に動作します。ショートカット「QGIS Desktop 3.6.0」でQGISを開くと、同じエラーが発生します


9
なぜGRASSがQGISで開始するためのデフォルトのオプションではないのでしょうか。
Mr. Che

まったく同じ問題が再び発生し、grassOSGEO4wでパッケージを更新することで解決しました。
Mr. Che

QGIS Desktop x.x.x with GRASS x.x.xオプションは全然ありません。QGIS Desktopオプションしかありません。何が悪いのでしょうか?
ナンシー

私のようにそのショートカットがない場合は、すでにショートカットを持っているQGISアプリケーションと同じフォルダにある「qgis-bin-g7.exe」を指す新しいショートカットを作成できます。私の場合、フォルダはC:\ OSGeo4W64 \ binです。これにより、QRASの現在の最新バージョンでGRASSが開きます。私はQGIS 3.4(現在の長期リリース)を使用しているため、ショートカットを「qgis-ltr-bin-g7」を指すように変更しました。
ブラックソーン

私にとっては、そのようなショートカットはありません。そして、それは間違いなく環境に依存します。そのcall "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"ため、qgisバッチファイルに行を追加すると、芝生ツールが機能します。讲义1コースのパスが正しくなければなりませんし、行は、その行の後に来る必要がありますcall "%~dp0\o4w_env.bat"
アンドレアス・ミュラー

6

私も同じ問題を抱えていましたが、grassフォルダーの名前を "grass76"からgrass-7.6.0 "に変更することで解決できました。


4

ご質問の一部に関して

「パスが存在しないようですが、変更する場所が見つかりませんでした。バージョン2.xのように、処理設定のオプションではなくなりました。」

作業中のGRASSフォルダーのパスを管理できます

設定>オプション>処理>プロバイダー> GRASS

QGIS 3.0.3バージョンに基づく

GRASS_setting_window

を調整できる場所を'GRASS7 folder'ダブルクリックします。

ちなみに、GRASSは私のQGIS 3.0.3バージョンで問題なく動作します。


このスクリーンショットはどのバージョンのものですか?私は私のものを添付しました。私よりもいくつかのオプションがあるようです!
カンタン

1
QGIS 3.0.3バージョン
Taras

GRASSを組み込んだQGISを起動しなかった可能性があります
Taras

「GRASS7フォルダー」の行がqgis 3.6および3.10にありません。
foob​​arbecue

ただし、LTR(QGIS 3.4)では安定しています
Taras

3

このgrasswiki-articleに基づいて、オペレーティングシステム環境変数GISBASEをGRASSインストールフォルダーに設定すると、問題が解決する場合があります(例:C:\ OSGeo4W \ apps \ grass \ grass76)。

QGIS 3.8の処理オプションには、GRASSフォルダーのオプションがまだ含まれていません。

WindowsオペレーティングシステムとQGIS 3.8 / GRASS 7.6を参照します。


QGIS 3.8の処理オプションにGRASSフォルダーはありませんでした。他にもGRASS関連のフォルダーがいくつかありますが、GRASSと明確に区​​別できるものはありません。QGIS 3.8.1を使用しています。OPが「QRAS with GRASS」を起動しなかったというタラスの提案に関しては、それは現在私のマシンにいる私にとってオプションではなく、OPのオプションでもなかったかもしれません。私は過去にそのオプションを使用したことがあるのを知っています。この新しい(私にとっての)マシンにQGISをインストールしてそれを見逃したとき、私がどのように何をしたかわかりません。新しい環境パスを追加するとうまくいったようです。
シア

私のために修正しました!
foob​​arbecue

2

私には、「通常の」qgisを開始するときに、いくつかの環境変数が欠落しているようです。qgis-ltr-bin.envqgis-ltr.batを変更することで、QGIS 3.4.13でこれを修正しました。3.6、3.8(...)バージョンでは、これら2つのファイルの名前は異なりますが類似しています。もし、あんたが

qgisスタートアイコンを右クリック>ファイルパスを開く

これにより、... \ OSGeo4W64 \ binまたはqgisをインストールした場所に移動します。2つのファイルがそこにあります。変更を加えるには、標準のテキストエディター(メモ帳など)で開きます。

qgis-ltr-bin.env

  • PATHをqgis-ltr-bin-g7.env(同じフォルダーにある)に保存されているのと同じPATH行に変更します。
  • QGIS-LTR-ビンg7.env変数GISBASE、GRASS_PROJSHAREとGRASS_PYTHONを追加

qgis-ltr.bat内

  • qgis-ltr-grass7.bat(同じフォルダーにあります)から3行目を追加call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"します(バージョンによっては、grassフォルダーの名前が異なる場合があります)。
  • PATHをqgis-ltr-grass7.batに保存されているのと同じPATH行に変更します(7行目)

QGIS 3.5.15の動作に感謝します。
ナタン

1

@Friedemannと同じ修正がC:\ OSGeo4W64 \ apps \ grass \ grass78フォルダーをC:\ OSGeo4W64 \ apps \ grass \ grass-7.8.0に変更してQGIS 3.10で機能しました。

更新:単純なフォルダー名の変更の修正により、grassツールボックス関数をQGIS 3.10で開くことができました。ただし、実行すると、GRASS操​​作はすべて失敗し、ログに次のエラーが記録されました。

指定されたパスが見つかりません。'""'は、内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。

そこで、別の回答で説明されているように、Windows環境変数を設定して(GRASSフォルダー名を「grass78」に戻しました)、GRASS操​​作がQGISで正しく実行されるようになりました。これは適切な解決策のようです。


入力いただきありがとうございます。設定する変数と場所を知るためのリソースを教えていただけますか?
カンタン

1
私は、Windowsエクスプローラでは、Windowsの10を使用します。右クリックし、このPCを、選択し、プロパティその後、システムの詳細設定をし、高度なタブ、そして環境変数。[ 新規...]をクリックして、変数名に「GISBASE」を入力し、変数値に「C:\ OSGeo4W64 \ apps \ grass \ grass78」を入力します。 ]。[ OK]をクリックすると、新しく作成された変数がリストに追加されます。
ewolf

0

ToolBox(QGISを使用)の処理でGRASSを使用する別の解決策はC:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\、ファイルを見つけGrass7Utils.pyて用語を置き換えることです。

  • grass-7.grass7ライン223又はその付近に位置するコードで
  • その後、for version in ['', '7', '76', '74', '72', '71', '70']:"によってfor version in ['', '7', '78', '76', '74', '72', '71', '70']:コードの行229またはその付近に位置しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.