Atualizei o QGIS para a versão 3.6 usando OSGEO4w
Quando tento executar qualquer script GRASS, recebo a seguinte 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
Respostas:
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ê
fonte
grass
pacote com o OSGEO4w.QGIS Desktop x.x.x with GRASS x.x.x
opção. Eu só tenho aQGIS Desktop
opção. O que pode estar errado?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"
Eu tive o mesmo problema, mas consegui resolvê-lo renomeando minha pasta de grama de "grass76" para grass-7.6.0 ".
fonte
Em relação a uma parte da sua pergunta
você pode gerenciar o caminho da pasta GRASS em funcionamento através
Baseado na versão QGIS 3.0.3
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.
fonte
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.
fonte
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 :
no qgis-ltr.bat :
call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"
(talvez a pasta grass tenha um nome diferente na sua versão)fonte
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.0ATUALIZAÇÃ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:
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.
fonte
Outra solução para usar o GRASS no processamento do ToolBox (com QGIS) é encontrar no
C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\
arquivoGrass7Utils.py
e substituir os termos:grass-7.
porgrass7
no código localizado na linha 223 ou nos arredoresfor version in ['', '7', '76', '74', '72', '71', '70']:
"byfor version in ['', '7', '78', '76', '74', '72', '71', '70']:
no código localizado na linha 229 ou nos arredores.fonte