GRASS не працює з QGIS 3.6


23

Я оновив QGIS до версії 3.6, використовуючи OSGEO4w

Коли я намагаюся запустити будь-який сценарій GRASS, я отримую таке повідомлення про помилку:

Повідомлення про помилку

Цей алгоритм неможливо запустити :-( Вказана папка GRASS 7 "C: \ OSGEO4 ~ 1 \ bin \ bin" не містить дійсного набору модулів GRASS 7. Перейдіть у діалогове вікно налаштувань обробки та перевірте, чи GRASS 7 папка правильно налаштована

Схоже, шлях не існує, але я не зміг знайти місце, щоб його змінити; це не варіант у налаштуваннях обробки більше, як у версіях 2.x.

Чи є спосіб запустити ці сценарії обробки в QGIS 3.6 і якщо так, то як я можу налаштувати потрібні налаштування?


Редагувати: Ось як виглядають мої варіанти обробки

Параметри обробки


Ви намагалися використовувати QGIS 3.4.5 (новий LTR), він працює в цій версії.
ахмадханб

Коли я запускаю GRASS спочатку, то завантажую QGIS, все добре. Інакше ні.
Джим Маклафлін

Відповіді:


33

Якщо я відкрию QGIS за допомогою ярлика "QGIS Desktop 3.6.0 з GRASS 7.6.0", все працює добре. Якщо я відкрию QGIS за допомогою ярлика "QGIS Desktop 3.6.0", я отримаю ту ж помилку, що і ви


10
Цікаво, чому GRASS не є типовим варіантом для початку з QGIS.
Містер Че

Точно така ж проблема виникла знову і була вирішена шляхом оновлення grassпакета OSGEO4w.
Містер Че

Я взагалі не отримую такого QGIS Desktop x.x.x with GRASS x.x.xваріанту. Я лише отримую QGIS Desktopваріант. Що може бути не так?
Ненсі

Якщо як у мене, у вас немає цього ярлика, ви можете створити нову, вказуючи на "qgis-bin-g7.exe" у тій самій папці, що і програми QGIS, для яких у вас вже є ярлик. У моєму випадку папка - це C: \ OSGeo4W64 \ bin. Це відкриє GRASS з вашою останньою останньою версією QGIS. Я використовую QGIS 3.4 (поточний довгостроковий випуск), і тому я змінив ярлик, щоб вказати на "qgis-ltr-bin-g7".
терен

Для мене немає такого ярлика. І це однозначно залежить від оточення. Тож я додав рядок call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"до мого файлу пакетів qgis, і інструменти для трави працюють. Шлях повинен бути правильним, і лінія повинна прийти за цією лінієюcall "%~dp0\o4w_env.bat"
Андреас Мюллер

6

У мене була така ж проблема, але мені вдалося її вирішити, перейменувавши мою папку з «трава76» на «траву-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
Тарас

Ви, мабуть, не запускали QGIS з GRASS у ньому
Тарас

Рядок для "папки GRASS7" відсутній у qgis 3.6 та 3.10.
foobarbecue

Однак вона стабільна для LTR (QGIS 3.4)
Тарас

3

На підставі цієї статтіwiwiki встановлення змінної середовища середовища операційної системи GISBASE в папку інсталяції GRASS може усунути проблему (наприклад, C: \ OSGeo4W \ apps \ trave \ grass76).

Параметри обробки QGIS 3.8 досі не містять опції для папки GRASS.

Я маю на увазі операційну систему Windows та QGIS 3.8 / GRASS 7.6.


прибив це мені на голову: немає папки GRASS, яка б обробляла параметри для QGIS 3.8. Є декілька інших папок, пов’язаних із ГРАССАМ, але нічого, що є чітко GRASS. Я використовую QGIS 3.8.1. Що стосується пропозиції Тараса про те, що ОП не запускала "QGIS з GRASS", то це для мене зараз не є варіантом на моїй машині і, можливо, також не був для ОП. Я знаю, що у мене був такий варіант у минулому, я не знаю, що я робив інакше, коли встановлював QGIS на цій новій (для мене) машині, щоб його пропустити. Здається, додавання нового шляху до навколишнього середовища спрацювало для мене.
каріте

Виправлено це для мене!
foobarbecue

2

Мені здається, що деякі змінні середовища відсутні при запуску "нормальних" qgis. Я зафіксував це в QGIS 3.4.13, змінивши qgis-ltr-bin.env і qgis-ltr.bat . У версії 3.6, 3.8 (...) ці два файли матимуть іншу, але схожу назву. Якщо ти

клацніть правою кнопкою миші на значку запуску qgis> відкрити шлях до файлу

це повинно призвести вас до ... \ OSGeo4W64 \ bin або куди б ви не встановили qgis. Ви знайдете там два файли. Відкрийте їх за допомогою стандартного текстового редактора (наприклад, блокнота), щоб внести зміни:

qgis-ltr-bin.env :

  • зміни PATH на той самий рядок PATH, який зберігається у qgis-ltr-bin-g7.env (розташований у тій же папці)
  • з qgis-ltr-bin-g7.env додайте змінні GISBASE, GRASS_PROJSHARE та GRASS_PYTHON

в qgis-ltr.bat :

  • додайте рядок 3 з qgis-ltr-grass7.bat (розташований у тій же папці): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(можливо, папка з травою має іншу назву у вашій версії)
  • зміни PATH на ту саму лінію PATH, яка зберігається у qgis-ltr-grass7.bat (рядок 7)

Завдяки QGIS 3.5.15 працює.
точно

1

Те саме виправлення, що і @Friedemann працював у QGIS 3.10 із папкою C: \ OSGeo4W64 \ apps \ trave \ trave78 змінено на C: \ OSGeo4W64 \ apps \ trave \ trave-7.8.0

ОНОВЛЕННЯ: просте виправлення зміни імені папки дозволило відкрити функції інструментів "Трава" в QGIS 3.10. Однак при виконанні операцій GRASS все не вдалося зі наступною помилкою в журналі:

Система не може знайти вказаний шлях. "" "не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл.

Отже, я спробував встановити змінну навколишнього середовища Windows (використовуючи назву папки GRASS, повернуту назад до «grass78»), як описано в іншій відповіді, і операції GRASS тепер належним чином виконуються в QGIS. Це здається правильним рішенням.


Дякую за ваш внесок, чи не могли б ви вказати мені на ресурс, щоб знати, яку змінну встановити та де?
Кантань

1
Я використовую Windows 10, тому в Провіднику Windows: клацніть правою кнопкою миші Цей ПК , виберіть Властивості, потім Додаткові параметри системи , потім вкладка Додаткові , потім Екологічні змінні . Натисніть кнопку Створити ... та введіть "GISBASE" у назві змінної та "C: \ OSGeo4W64 \ apps \ trave \ trave78" у змінному значенні [ ПРИМІТКА: ваш шлях може бути різним залежно від версії QGIS та / або GRASS у вас ]. Натисніть кнопку ОК, і ви побачите новостворену змінну, додану до списку.
евольф

0

Іншим рішенням використання GRASS при обробці ToolBox (з QGIS) є пошук у 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 або після цього.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.