Daha çox

Python skriptini işlədikdən sonra QGIS -dən necə çıxmaq olar?

Python skriptini işlədikdən sonra QGIS -dən necə çıxmaq olar?


Bir python skriptini işlətmək istərdimqgis -myscript.py kodlayınvə sonra dərhal çıxın. İstifadə edirəmiface.actionExit (). trigger ()python konsolundan çalıştırdığımda QGIS'i öldürən, ancaq keçdiyim skriptə qoyanda deyil-kod.

Dərhal çıxmağın düzgün yolu nədir? QGIS 2.0.1 ilə işləyirəm

Yeniləyin: Mən də cəhd etdimsys.exit (). QGIS onu tutur və aşağıdakılarla bir pəncərə açılır:

Aşağıdakı kodun icrası zamanı bir səhv meydana gəldi: execfile ('myscript.py') Traceback (ən son zəng): Fayl "", satır 1, Fayl "myscript.py", sətir 14, sys.exit () SystemExit -də

Yeniləyin:os.kill (os.getpid (), 9)işləyir amma çirkli bir hackdir və daha yaxşı bir şey axtarıram.


Ssenarinizi sınayın:

qgis.utils -dən iface idxal edin #kodunuz burada iface.actionExit (). trigger ()

Mənim üçün işləyir.

Redaktə Qeyd:

Conley Owensin şərhinə əsaslanaraq "faydalı bir şey" etmək üçün skriptimi bir qədər dəyişdirdim iface şərh edildi).

#qgis.utils idace idace idxal os os.system ('aydın') çap edin "Salam" iface.actionExit (). trigger ()

Qaçdım qgis -myscript.py kodlayın bash konsolunda, skriptin qovluğunda və dərhal bu səhv mesajını aldım:

və bunu göstərən qgis.utils -dən idace idace idxal olunur xətt lazımdır.

İlk sətir şərh edilmədikdə, skriptin icrasında səhvlər yox idi:

lakin nəzarət Python konsolunda deyildi; bash konsolundadır (orada "Salam" yazısına baxın). Bu səbəbdən sizin os.kill (os.getpid (), 9) əmri işləyir, çünki konsolu bağlayın və avtomatik olaraq QGIS -i bağlayın.

Bu problemin həlli, QGIS xaricində PyQGIS API -yə ehtiyacım varsa, PYTHONPATH -ı QGIS -ə daxil etmək idi (/usr/share/qgis/python) mənim .bashrc və skriptini bash konsolunda olduğu kimi işlətmək python myscript.py. İşləyir.

Windows -da, QGIS -in Python Konsolunda PYTHONPATH əldə edə bilərsiniz:

os os.getcwd idxal edin ()

və dəyişdirmək üçün Windows İdarəetmə Panelindən istifadə edin.


Bunu etmək mənim üçün yaxşı işləyir:

os os._exit idxal edin (0)

Bir çıxış kodu təyin etməyiniz də faydalıdır.


Videoya baxın: طريقة ايقاف برنامج Windows Defender Real Time Protection نهائيا فى ويندوز 10