saya bekerja dengan konsol python qgis. Saya biasanya menyimpan semua skrip python saya ke ~ / Scripts / python. Saya telah mengatur PYTHONPATH menjadi ~ / Scripts / python di .bashrc saya. Namun, saya tidak dapat mengatur untuk mengimpor sripts saya dari konsol di dalam QGIS.
Ini kesalahan saya ketika saya mencoba mengimpor skrip bernama Create_Figures_2D
import Create_Figures_2D
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/qgis/utils.py", line 309, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ImportError: No module named Create_Figures_2D
Bagaimana cara mengatur PYTHONPATH untuk pygis?
~/Scripts/python
ke PATH yang biasanya berfungsi untuk saya. Periksa denganimport os; os.path
Jawaban:
Di konsol Python jalankan yang berikut:
Lihat apakah entri PYTHONPATH Anda terdaftar. Saya kira tidak, karena variabel lingkungan itu mungkin tidak tersedia untuk menjalankan Python QGIS.
Untuk menambahkan folder skrip Anda ke sys.path konsol, lakukan append reguler ():
Maka Anda harus dapat mengimpor modul Anda dari sana untuk sesi konsol itu. Saya sarankan memperluas ~ ke jalur home penuh pengguna Anda (tidak yakin apakah Python ~ ekspansi).
EDIT : ~ ekspansi tampaknya tidak didukung oleh sys.path (setidaknya untuk Mac).
Konsol Python QGIS dibuat oleh modul Python, 'console.py'. Jadi, jika Anda ingin menambahkan jalur kustom Anda ke sys.path dengan cara yang lebih permanen, edit file console.py dan tambahkan pernyataan sys.path.append ('path / to / my / scripts') setelah modul bagian impor.
console.py terletak di sini (untuk Mac, menggunakan paket QGIS KyngChaos.com ):
Tentu saja, ini adalah hack yang akan dihapus dan harus diulang pada pembaruan QGIS.app.
Penyesuaian apa pun untuk sys.path interpreter QGIS Python yang sedang berjalan juga tersedia untuk plugin lain.
Alternatif yang lebih aman mungkin adalah membuat plugin PyQGIS pengembangan sederhana yang memuat dan hanya melakukan sys.path.append (), kapan pun Anda menginginkannya. Itu juga bisa menghapus jalur itu dari sys.path pada plugin unload (). Saya belum menguji apakah penyesuaian sys.path dari plugin semacam itu akan tersedia di konsol yang sudah dimuat (saya kira, itu akan menjadi.)
sumber