Bagaimana cara mengakses modul QGIS dari virtualenv saya

11

Saya menjalankan Ubuntu 14.4 dan saya telah menginstal lingkungan virtual python. Lalu saya pip menginstal beberapa library python (gdal, lxml, psycopg2 dll.)

Juga di sistem saya, saya memiliki modul untuk QGIS. Jadi ketika saya mengetik python maka saya dapat mengimpor modul ini sebagai:

import qgis.core

Tetapi ketika saya mencoba melakukan hal yang sama melalui virtualenv saya mendapatkan kesalahan: modul tidak ditemukan.

Ketika saya membuat virtualenv saya lakukan dengan opsi:

virtualenv --no-site-packages env

Yang membatasi env saya dari sistem env. Pertanyaannya adalah bagaimana cara mengakses modul QGIS di virtualenv saya?

pengguna1919
sumber
1
Ini mungkin bisa membantu. Belum mencobanya sendiri.
Nate Wanner
1
Ini mungkin juga membantu. Belum mencobanya sendiri.
Matthias Kuhn

Jawaban:

1

Setelah membuat dan mengaktifkan virtualenv Anda:

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

Anda harus mendefinisikan variabel lingkungan PYTHONPATH ke jalur instalasi python QGIS Anda.

silakan ubah [qgispath] ke jalur qgis Anda:

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

itu juga akan perlu untuk mengatur LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/[qgispath]/lib

untuk mencegah kesalahan ini

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

Pythonpath Anda ditetapkan hanya untuk virtualenv, dan untuk sesi Anda. Jika Anda ingin mengaturnya secara otomatis di bawah virtualenv ini, Anda dapat membuat file di bawah env/lib/python2.7/site-packagesdengan file .pth.

Cara paling mudah adalah menambahkan file konfigurasi path ke direktori yang sudah ada di jalur Python, biasanya ke ... / situs-paket / direktori. File konfigurasi path memiliki ekstensi .pth, dan setiap baris harus berisi satu path yang akan ditambahkan ke sys.path. (Karena jalur baru ditambahkan ke sys.path, modul di direktori yang ditambahkan tidak akan mengesampingkan modul standar. Ini berarti Anda tidak dapat menggunakan mekanisme ini untuk menginstal versi tetap dari modul standar.) Sumber

untuk membuat dan mengisi file menggunakan perintah seperti itu:

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

Ditemukan di buku masak Python Qgis, dan jawaban terkait mengatur pythonpath

Hugo Roussaffa - GeoDatup
sumber