GRASS가 QGIS 3.6에서 작동하지 않습니다


23

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를로드하면 모두 정상입니다. 그렇지 않으면 아닙니다.
Jim McLaughlin

답변:


33

바로 가기 "QGIS Desktop 3.6.0 with GRASS 7.6.0"으로 QGIS를 열면 모든 것이 잘 작동합니다. 단축키 "QGIS Desktop 3.6.0"으로 QGIS를 열면 다음과 같은 오류가 발생합니다


10
GRASS가 QGIS로 시작하기위한 기본 옵션이 아닌 이유가 궁금합니다.
Mr. Che

똑같은 문제가 다시 발생 grass하고 OSGEO4w로 패키지를 업데이트하여 해결되었습니다 .
Mr. Che

QGIS Desktop x.x.x with GRASS x.x.x옵션 이 전혀 없습니다 . 나는 QGIS Desktop옵션을 얻는다 . 무엇이 잘못 될 수 있습니까?
Nancy

나와 같은 바로 가기가없는 경우 이미 바로 가기가있는 QGIS 응용 프로그램과 동일한 폴더에서 "qgis-bin-g7.exe"를 가리키는 새 바로 가기를 만들 수 있습니다. 필자의 경우 폴더는 C : \ OSGeo4W64 \ bin입니다. 현재 최신 버전의 QGIS와 함께 GRASS가 열립니다. QGIS 3.4 (현재 장기 릴리스)를 사용하므로 "qgis-ltr-bin-g7"을 가리 키도록 바로 가기를 변경했습니다.
blackthorn

나를 위해, 나는 그런 지름길이 없습니다. 그리고 그것은 분명히 환경에 달려 있습니다. 그래서 call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"qgis 배치 파일에 줄 을 추가 하고 잔디 도구가 작동합니다. cource의 경로는 정확해야하고 라인은 그 라인 다음에 와야합니다call "%~dp0\o4w_env.bat"
Andreas Müller

6

같은 문제가 있었지만 잔디 폴더의 이름을 "grass76"에서 grass-7.6.0 "으로 바꾸어 문제를 해결했습니다.


4

질문의 일부와 관련하여

"경로가 존재하지 않는 것처럼 보이지만 경로를 변경할 위치를 찾을 수 없습니다. 버전 2.x와 같이 더 이상 처리 설정의 옵션이 아닙니다."

당신은 작업 GRASS 폴더의 경로를 통해 관리 할 수 ​​있습니다

설정> 옵션> 처리> 제공자> GRASS

QGIS 3.0.3 버전 기준

GRASS_setting_window

를 조정할 수있는 위치를 'GRASS7 folder'두 번 클릭하면됩니다.

그런데 GRASS는 QGIS 3.0.3 버전에서 잘 작동합니다.


이 스크린 샷은 어떤 버전입니까? 나는 나의 것을 첨부했다, 당신이 나보다 몇 가지 더 많은 옵션을 가지고있는 것처럼 보인다!
Kantan

1
QGIS 3.0.3 버전
Taras

GRASS가 포함 된 QGIS를 시작하지 않았을 것입니다
Taras

qgis 3.6 및 3.10에서 "GRASS7 폴더"에 대한 행이 누락되었습니다.
foobarbecue

그러나 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가 "QGIS with GRASS"를 시작하지 않았다는 Taras의 제안과 관련하여, 이것은 현재 내 컴퓨터에 대한 옵션이 아니며 OP에 대한 옵션이 아닐 수도 있습니다. 나는 과거에 그 옵션을 가지고 있다는 것을 알고 있습니다.이 새로운 (나를 위해) 기계에 QGIS를 설치했을 때 내가 뭘 다르게했는지 알지 못합니다. 새로운 환경 경로를 추가하면 나를 위해 일한 것 같습니다.
shea

나를 위해 고쳤다!
foobarbecue

2

나에게 "정상"qgis를 시작할 때 일부 환경 변수가 누락 된 것 같습니다. qgis-ltr-bin.envqgis-ltr.bat 를 변경하여 QGIS 3.4.13에서이 문제를 해결했습니다 . 3.6, 3.8 (...) 버전에서이 두 파일의 이름은 다르지만 비슷합니다. 만약 너라면

qgis 시작 아이콘을 마우스 오른쪽 버튼으로 클릭하고 파일 경로 열기

이로 인해 ... \ OSGeo4W64 \ bin 또는 qgis를 설치 한 모든 위치로 이동해야합니다. 두 개의 파일이 있습니다. 표준 텍스트 편집기 (예 : 메모장)로 열어서 변경하십시오.

qgis-ltr-bin.env :

  • qgis-ltr-bin-g7.env에 저장된 동일한 PATH 행으로 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"(잔디 폴더는 버전에 따라 이름이 다를 수 있음)
  • qgis-ltr-grass7.bat에 저장된 동일한 PATH 행으로 PATH 변경 (7 행)

QGIS 3.5.15가 작동합니다.
natan

1

@Friedemann이 C : \ OSGeo4W64 \ apps \ grass \ grass78 폴더가 C : \ OSGeo4W64 \ apps \ grass \ grass-7.8.0으로 변경된 QGIS 3.10에서 작동했던 것과 동일한 수정

업데이트 : 간단한 폴더 이름 변경 수정으로 잔디 툴박스 기능을 QGIS 3.10에서 열 수있었습니다. 그러나 실행되면 GRASS 작업이 모두 로그에 다음 오류와 함께 실패했습니다.

시스템이 지정된 경로를 찾을 수 없습니다. ' ""'은 (는) 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.

그래서 다른 답변에서 설명한 것처럼 Windows 환경 변수 (GRASS 폴더 이름을 'grass78'로 되돌림)를 설정하려고 시도했지만 이제 GRASS 작업이 QGIS에서 올바르게 실행됩니다. 이것은 올바른 해결책 인 것 같습니다.


입력 해 주셔서 감사합니다. 설정할 변수와 위치를 알 수있는 리소스를 알려 주시겠습니까?
Kantan

1
그래서 Windows 탐색기에서, 윈도우 10 사용 : 마우스 오른쪽 버튼을 클릭 이 PC를 선택 하고 속성을 다음 고급 시스템 설정 , 다음 고급 탭을 누른 다음, 환경 변수 . 새로 만들기 ...를 클릭 하고 변수 이름에 "GISBASE"를 입력하고 변수 값에 "C : \ OSGeo4W64 \ apps \ grass \ grass78"을 입력 하십시오. [ 참고 : 경로는 QGIS 및 / 또는 GRASS 버전에 따라 다를 수 있습니다. ]. 확인을 클릭 하면 새로 작성된 변수가 목록에 추가 된 것을 볼 수 있습니다.
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.