GRASS không hoạt động với QGIS 3.6


19

Tôi đã cập nhật QGIS lên phiên bản 3.6 bằng OSGEO4w

Khi tôi cố chạy bất kỳ tập lệnh GRASS nào, tôi nhận được thông báo lỗi sau:

Thông báo lỗi

Thuật toán này không thể chạy :-( Thư mục GRASS 7 được chỉ định "C: \ OSGEO4 ~ 1 \ bin \ bin" không chứa bộ mô-đun GRASS 7 hợp lệ. Vui lòng truy cập hộp thoại Cài đặt xử lý và kiểm tra xem GRASS 7 thư mục được cấu hình đúng

Có vẻ như con đường không tồn tại, nhưng tôi không thể tìm thấy một nơi để thay đổi nó; nó không phải là một tùy chọn trong cài đặt xử lý giống như trong phiên bản 2.x.

Có cách nào để chạy các tập lệnh xử lý đó trong QGIS 3.6 không và nếu có, làm cách nào tôi có thể điều chỉnh các cài đặt cần thiết?


Chỉnh sửa: Đây là những gì các tùy chọn xử lý của tôi trông như thế nào

Xử lý tham số


Bạn đã thử sử dụng QGIS 3.4.5 (LTR mới), nó hoạt động trong phiên bản này.
ahmadhanb

Khi tôi khởi động GRASS trước, sau đó tải QGIS, tất cả đều ổn. Nếu không, không.
Jim McLaughlin

Câu trả lời:


29

Nếu tôi mở QGIS bằng phím tắt "QGIS Desktop 3.6.0 với GRASS 7.6.0" thì mọi thứ đều hoạt động tốt. Nếu tôi mở QGIS bằng phím tắt "QGIS Desktop 3.6.0", tôi sẽ gặp lỗi tương tự như bạn


9
Tôi tự hỏi tại sao GRASS không phải là tùy chọn mặc định để bắt đầu với QGIS.
Ông Che

Vấn đề chính xác tương tự lại phát sinh và được giải quyết bằng cách cập nhật grassgói với OSGEO4w.
Ông Che

Tôi không có QGIS Desktop x.x.x with GRASS x.x.xtùy chọn nào cả. Tôi chỉ nhận được QGIS Desktoptùy chọn. Điều gì có thể sai?
Nancy

Nếu giống như tôi, bạn không có phím tắt đó, bạn có thể tạo một phím tắt mới trỏ đến "qgis-bin-g7.exe" trong cùng thư mục với các ứng dụng QGIS mà bạn đã có lối tắt. Trong trường hợp của tôi, thư mục là C: \ OSGeo4W64 \ bin. Điều này sẽ mở GRASS với phiên bản mới nhất hiện tại của QGIS. Tôi sử dụng QGIS 3.4 (bản phát hành dài hạn hiện tại) và vì vậy tôi đã thay đổi phím tắt để trỏ đến "qgis-ltr-bin-g7".
Blackthorn

Đối với tôi, tôi không có một lối tắt như vậy. Và nó chắc chắn phụ thuộc vào môi trường. Vì vậy, tôi đã thêm dòng call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"vào tệp bó qgis của mình và các công cụ cỏ hoạt động. Nguồn của đường dẫn phải chính xác và dòng phải đi sau dòng đócall "%~dp0\o4w_env.bat"
Andreas Müller

6

Tôi đã có cùng một vấn đề nhưng tôi đã giải quyết nó bằng cách đổi tên thư mục cỏ của tôi từ "grass76" thành grass-7.6.0 ".


4

Đối với một phần câu hỏi của bạn

"Có vẻ như đường dẫn không tồn tại, nhưng tôi không thể tìm thấy một nơi để thay đổi nó; nó không phải là một tùy chọn trong cài đặt xử lý giống như trong các phiên bản 2.x."

bạn có thể quản lý đường dẫn của thư mục GRASS đang hoạt động thông qua

Cài đặt> Tùy chọn> Xử lý> Nhà cung cấp> GRASS

Dựa trên phiên bản QGIS 3.0.3

GRASS_setting_window

nơi bạn có thể điều chỉnh 'GRASS7 folder', chỉ cần nhấp đúp chuột vào nó.

Và nhân tiện, GRASS hoạt động tốt trên phiên bản QGIS 3.0.3 của tôi.


Phiên bản này là ảnh chụp màn hình từ đâu? Tôi đã đính kèm của tôi, có vẻ như bạn có một vài lựa chọn hơn tôi!
Kantan

1
Phiên bản QGIS 3.0.3
Taras

Có lẽ bạn đã không khởi chạy QGIS với GRASS trong đó
Taras

Hàng cho "thư mục GRASS7" bị thiếu trong qgis 3.6 và 3.10.
foobarbiru

Tuy nhiên, nó ổn định cho LTR (QGIS 3.4)
Taras

3

Dựa trên bài viết này, cài đặt biến môi trường hệ điều hành GISBASE vào thư mục cài đặt GRASS có thể khắc phục sự cố (ví dụ: C: \ OSGeo4W \ apps \ grass \ grass76).

Tùy chọn xử lý QGIS 3.8 vẫn không chứa tùy chọn cho thư mục GRASS.

Tôi đề cập đến hệ điều hành Windows và QGIS 3.8 / GRASS 7.6.


Tôi đóng đinh nó trên đầu: không có thư mục GRASS nào trong các tùy chọn xử lý cho QGIS 3.8. Có một vài thư mục liên quan đến GRASS khác, nhưng không có gì rõ ràng là GRASS. Tôi đang sử dụng QGIS 3.8.1. Đối với đề xuất của Taras rằng OP đã không khởi chạy "QGIS với GRASS", đó không phải là một tùy chọn cho tôi hiện tại trên máy của tôi và có thể cũng không phải là một cho OP. Tôi biết tôi đã có tùy chọn đó trong quá khứ, tôi không biết tôi đã làm gì khác khi tôi cài đặt QGIS trên máy mới này (đối với tôi) để bỏ lỡ nó. Có vẻ như thêm đường dẫn môi trường mới làm việc cho tôi.
shea

Đã sửa nó cho tôi!
foobarbiru

2

Đối với tôi, có vẻ như một số biến môi trường bị thiếu khi bắt đầu qgis "bình thường". Tôi đã sửa lỗi này trong QGIS 3.4.13 bằng cách thay đổi qgis-ltr-bin.envqgis-ltr.bat . Trong phiên bản 3.6, 3.8 (...) hai tệp này sẽ có tên khác nhau nhưng giống nhau. nếu bạn

nhấp chuột phải vào biểu tượng bắt đầu qgis của bạn> mở đường dẫn tệp

điều này sẽ dẫn bạn đến ... \ OSGeo4W64 \ bin hoặc bất cứ nơi nào bạn đã cài đặt qgis. Bạn sẽ tìm thấy hai tập tin ở đó. Mở chúng bằng trình soạn thảo văn bản tiêu chuẩn (ví dụ: notepad) để thực hiện thay đổi:

qgis-ltr-bin.env :

  • thay đổi PATH thành cùng dòng PATH được lưu trong qgis-ltr-bin-g7.env (nằm trong cùng thư mục)
  • từ qgis-ltr-bin-g7.env thêm các biến GISBASE, GRASS_PROJSHARE và GRASS_PYTHON

trong qgis-ltr.bat :

  • thêm dòng 3 từ qgis-ltr-grass7.bat (nằm trong cùng thư mục): call "%OSGEO4W_ROOT%\apps\grass\grass78\etc\env.bat"(có thể thư mục cỏ có tên khác trong phiên bản của bạn)
  • thay đổi PATH thành cùng một dòng PATH được lưu trong qgis-ltr-grass7.bat (dòng 7)

Cảm ơn ngay bây giờ với các tác phẩm của QGIS 3.5.15.
natan

1

Khắc phục tương tự như @Friedemann đã làm việc trong QGIS 3.10 với thư mục C: \ OSGeo4W64 \ apps \ grass \ grass78 đã đổi thành C: \ OSGeo4W64 \ apps \ grass \ grass-7.8.0

CẬP NHẬT: sửa chữa thay đổi tên thư mục đơn giản cho phép các chức năng hộp công cụ cỏ mở trong QGIS 3.10. Tuy nhiên, khi được thực thi, tất cả các thao tác GRASS đều thất bại với lỗi sau trong nhật ký:

Hệ thống không thể tìm đường dẫn cụ thể. '""' Không được công nhận là lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó.

Vì vậy, tôi đã thử đặt biến môi trường Windows (sử dụng tên thư mục GRASS được hoàn nguyên về 'grass78'), như được mô tả trong một câu trả lời khác, và các hoạt động GRASS hiện thực hiện đúng trong QGIS. Đây dường như là giải pháp thích hợp.


Cảm ơn cho đầu vào của bạn, bạn có thể chỉ cho tôi một tài nguyên để biết biến nào sẽ được đặt và ở đâu không?
Kantan

1
Tôi sử dụng Windows 10, vì vậy, trong Windows Explorer: nhấp chuột phải vào PC này , chọn Thuộc tính rồi cài đặt hệ thống Nâng cao , rồi tab Nâng cao , rồi Biến môi trường . Nhấp vào Mới ... và nhập "GISBASE" vào Tên biến và "C: \ OSGeo4W64 \ apps \ grass \ grass78" trong Giá trị biến [ LƯU Ý: đường dẫn của bạn có thể khác nhau tùy thuộc vào phiên bản của QGIS và / hoặc GRASS mà bạn có ]. Bấm OK và bạn sẽ thấy biến vừa tạo được thêm vào danh sách.
ewolf

0

Một giải pháp khác để sử dụng GRASS trong xử lý ToolBox (với QGIS) là tìm trong C:\OSGeo4W64\apps\qgis\python\processing\algs\grass7\tệp Grass7Utils.pyvà thay thế các điều khoản:

  • grass-7.bởi grass7trong mã nằm ở dòng 223 hoặc ở đâu đó
  • sau đó for version in ['', '7', '76', '74', '72', '71', '70']:"bằng for version in ['', '7', '78', '76', '74', '72', '71', '70']:mã nằm ở dòng 229 hoặc ở đâu đó.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.