O GRASS não funciona com o QGIS 3.6

20

Atualizei o QGIS para a versão 3.6 usando OSGEO4w

Quando tento executar qualquer script GRASS, recebo a seguinte mensagem de erro:

Mensagem de erro

Esse algoritmo não pode ser executado :-( A pasta GRASS 7 especificada "C: \ OSGEO4 ~ 1 \ bin \ bin" não contém um conjunto válido de módulos GRASS 7. Por favor, vá para a caixa de diálogo Configurações de processamento e verifique se o GRASS Pasta 7 está configurada corretamente

Parece que o caminho não existe, mas não consegui encontrar um lugar para alterá-lo; não é mais uma opção nas configurações de processamento, como nas versões 2.x.

Existe uma maneira de executar esses scripts de processamento no QGIS 3.6? Em caso afirmativo, como eu poderia ajustar as configurações necessárias?


Edit: Aqui está a aparência das minhas opções de processamento

Parâmetros de processamento

Kantan
fonte
Você já tentou usar o QGIS 3.4.5 (o novo LTR), funciona nesta versão.
ahmadhanb 27/02/19
Quando inicio o GRASS primeiro e carrego o QGIS, tudo está bem. Caso contrário, não.
Jim McLaughlin

Respostas:

30

Se eu abrir o QGIS com o atalho "QGIS Desktop 3.6.0 with GRASS 7.6.0", tudo funcionará bem. Se eu abrir o QGIS com o atalho "QGIS Desktop 3.6.0", recebo o mesmo erro que você

Dataform
fonte
9
Eu me pergunto por que o GRASS não é a opção padrão para começar com o QGIS.
Che Che
O mesmo problema surgiu novamente e foi resolvido com a atualização do grasspacote com o OSGEO4w.
Che Che
Eu não entendo a QGIS Desktop x.x.x with GRASS x.x.xopção. Eu só tenho a QGIS Desktopopção. O que pode estar errado?
Nancy
Se, como eu, você não tiver esse atalho, poderá criar um novo apontando para "qgis-bin-g7.exe" na mesma pasta dos aplicativos QGIS para os quais você já possui um atalho. No meu caso, a pasta é C: \ OSGeo4W64 \ bin. Isso abrirá o GRASS com sua versão mais recente atual do QGIS. Eu uso o QGIS 3.4 (versão atual de longo prazo) e, portanto, alterei o atalho para apontar para "qgis-ltr-bin-g7".
blackthorn
Para mim, eu não tenho um atalho. E definitivamente depende do meio ambiente. Então adicionei a linha call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"ao meu arquivo em lotes qgis e as ferramentas de grama funcionam. É claro que o caminho deve estar correto e a linha deve seguir essa linhacall "%~dp0\o4w_env.bat"
Andreas Müller
6

Eu tive o mesmo problema, mas consegui resolvê-lo renomeando minha pasta de grama de "grass76" para grass-7.6.0 ".

Friedemann
fonte
4

Em relação a uma parte da sua pergunta

"Parece que o caminho não existe, mas não consegui encontrar um lugar para alterá-lo; não é mais uma opção nas configurações de processamento, como nas versões 2.x."

você pode gerenciar o caminho da pasta GRASS em funcionamento através

Configurações> Opções> Processamento> Provedores> GRASS

Baseado na versão QGIS 3.0.3

GRASS_setting_window

onde você pode ajustar o 'GRASS7 folder', basta clicar duas vezes nele.

E, a propósito, o GRASS funciona bem na minha versão do QGIS 3.0.3.

Taras
fonte
De qual versão é essa captura de tela? Anexei o meu, parece que você tem mais algumas opções do que eu!
Kantan
1
Versão QGIS 3.0.3
Taras
Você provavelmente não lançou o QGIS com GRASS
Taras
A linha da "pasta GRASS7" está ausente no qgis 3.6 e 3.10.
Foobarbecue
No entanto, é estável para LTR (QGIS 3.4)
Taras
3

Com base neste artigo do grasswiki, a variável de ambiente do sistema operacional GISBASE para a pasta de instalação do GRASS pode corrigir o problema (por exemplo, C: \ OSGeo4W \ apps \ grass \ grass76).

As opções de processamento do QGIS 3.8 ainda não contêm uma opção para a pasta GRASS.

Refiro-me ao sistema operacional Windows e ao QGIS 3.8 / GRASS 7.6.

Nicolo
fonte
acertou na minha cabeça: nenhuma pasta GRASS nas opções de processamento para o QGIS 3.8. Existem algumas outras pastas associadas ao GRASS, mas nada que seja distintamente GRASS. Estou usando o QGIS 3.8.1. Com relação à sugestão de Taras de que o OP não lançou "QGIS with GRASS", isso não é uma opção para mim atualmente na minha máquina e pode não ter sido uma opção para o OP também. Sei que já tinha essa opção no passado, não sei o que fiz de diferente quando instalei o QGIS nesta nova máquina (para mim) para sentir falta dela. Adicionar o novo caminho do ambiente funcionou para mim, ao que parece.
shea
Corrigido para mim!
Foobarbecue
2

Para mim, parece que algumas variáveis ​​de ambiente estão ausentes ao iniciar o qgis "normal". Corrigi isso no QGIS 3.4.13 alterando qgis-ltr-bin.env e qgis-ltr.bat . Na versão 3.6, 3.8 (...), esses dois arquivos terão um nome diferente, mas semelhante. Se vocês

clique com o botão direito do mouse no ícone qgis start> abra o caminho do arquivo

isso deve levar você a ... \ OSGeo4W64 \ bin ou onde quer que você tenha instalado o qgis. Você encontrará os dois arquivos lá. Abra-os com um editor de texto padrão (por exemplo, bloco de notas) para fazer alterações:

qgis-ltr-bin.env :

  • altere PATH para a mesma linha PATH salva em qgis-ltr-bin-g7.env (localizada na mesma pasta)
  • de qgis-ltr-bin-g7.env adicione as variáveis ​​GISBASE, GRASS_PROJSHARE e GRASS_PYTHON

no qgis-ltr.bat :

  • adicione a linha 3 de qgis-ltr-grass7.bat (localizada na mesma pasta): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(talvez a pasta grass tenha um nome diferente na sua versão)
  • altere PATH para a mesma linha PATH salva em qgis-ltr-grass7.bat (linha 7)
jannik schilling
fonte
Obrigado agora com o QGIS 3.5.15 funciona.
natan 23/02
1

A mesma correção que o @Friedemann trabalhou no QGIS 3.10 com a pasta C: \ OSGeo4W64 \ apps \ grass \ grass78 alterada para C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

ATUALIZAÇÃO: a correção simples de alteração do nome da pasta permitiu que as funções da caixa de ferramentas grama fossem abertas no QGIS 3.10. No entanto, quando executadas, todas as operações do GRASS falharam com o seguinte erro no log:

O sistema não consegue encontrar o caminho especificado. '""' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote.

Portanto, tentei definir a variável de ambiente do Windows (usando o nome da pasta GRASS revertida para 'grass78'), conforme descrito em outra resposta, e as operações GRASS agora são executadas corretamente no QGIS. Esta parece ser a solução adequada.

ewolf
fonte
Obrigado pela sua contribuição, você poderia me indicar um recurso para saber qual variável definir e onde?
Kantan
1
Eu uso o Windows 10, portanto, no Windows Explorer: clique com o botão direito em Este PC , selecione Propriedades , Configurações avançadas do sistema , guia Avançado e Variáveis ​​ambientais . Clique em Novo ... e digite "GISBASE" em Nome da variável e "C: \ OSGeo4W64 \ apps \ grass \ grass78" em Valor variável [ NOTA: seu caminho pode ser diferente dependendo da versão do QGIS e / ou GRASS que você possui ] Clique em OK e você verá a variável recém-criada adicionada à lista.
ewolf
0

Outra solução para usar o GRASS no processamento do ToolBox (com QGIS) é encontrar no C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\arquivo Grass7Utils.pye substituir os termos:

  • grass-7.por grass7no código localizado na linha 223 ou nos arredores
  • then for version in ['', '7', '76', '74', '72', '71', '70']:"by for version in ['', '7', '78', '76', '74', '72', '71', '70']:no código localizado na linha 229 ou nos arredores.
Olivier ATHIMON
fonte