Cách truy cập mô-đun QGIS từ virtualenv của tôi


11

Tôi đang chạy Ubuntu 14.4 và tôi đã cài đặt một môi trường ảo python. Sau đó, tôi đã cài đặt một số thư viện python (gdal, lxml, psycopg2, v.v.)

Ngoài ra trong hệ thống của tôi, tôi có mô-đun cho QGIS. Vì vậy, khi tôi gõ python thì tôi có thể nhập mô-đun này dưới dạng:

import qgis.core

Nhưng khi tôi cố gắng thực hiện tương tự thông qua virtualenv của tôi, tôi gặp một lỗi: không tìm thấy mô-đun.

Khi tôi tạo virtualenv tôi đã làm với tùy chọn:

virtualenv --no-site-packages env

Mà hạn chế env của tôi từ env của hệ thống. Câu hỏi là làm thế nào để truy cập mô-đun QGIS trong virtualenv của tôi?


1
Điều này có thể giúp. Chưa tự mình thử.
Nate Wanner

1
Điều này cũng có thể giúp đỡ. Tôi đã không thử nó.
Matthias Kuhn

Câu trả lời:


1

Sau khi tạo và kích hoạt virtualenv của bạn:

virtualenv --no-site-packages env
source env/bin/activate
pip install [your libs]

Bạn phải xác định biến môi trường PYTHONPATH cho đường dẫn cài đặt python của QGIS.

vui lòng thay đổi [qgispath] thành đường dẫn của qgis của bạn:

export PYTHONPATH=/[qgispath]/share/qgis/python

cũng cần phải thiết lập LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/[qgispath]/lib

để ngăn chặn lỗi này

>>> import qgis.core
ImportError: libqgis_core.so.1.5.0: cannot open shared object file: No such file or directory

Pythonpath của bạn chỉ được đặt cho virtualenv và cho phiên của bạn. Nếu bạn muốn đặt nó tự động theo virtualenv này, bạn có thể tạo một tệp bên dưới env/lib/python2.7/site-packagesvới tệp .pth.

Cách thuận tiện nhất là thêm tệp cấu hình đường dẫn vào thư mục đã có trên đường dẫn của Python, thường là vào thư mục ... / site-gói /. Các tệp cấu hình đường dẫn có phần mở rộng là .pth và mỗi dòng phải chứa một đường dẫn duy nhất sẽ được thêm vào sys.path. (Vì các đường dẫn mới được gắn vào sys.path, các mô-đun trong thư mục đã thêm sẽ không ghi đè các mô-đun chuẩn. Điều này có nghĩa là bạn không thể sử dụng cơ chế này để cài đặt các phiên bản cố định của mô-đun chuẩn.) Nguồn

để tạo và điền vào tệp, sử dụng một lệnh như thế:

cat > [yourVirtualEnv]/lib/python2.7/site-packages/qgispythonpath.pth << /[qgispath]/share/qgis/python

Tìm thấy trong sách dạy nấu ăn Python Qgis và bộ câu trả lời liên quan pythonpath

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.