Scriptimi neden python konsolundan alamıyorum?


9

qgis python konsolu ile çalışıyorum. Genelde tüm python betiklerimi ~ / Scripts / python içinde saklıyorum.

Create_Figures_2D adlı bir komut dosyasını içe aktarmaya çalıştığımda hatam burada

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

Pygis için PYTHONPATH'ı nasıl ayarlarım?


1
~/Scripts/pythonNormalde benim için çalışan PATH'a eklemeyi deneyin . import os; os.path
Nathan W

Yanıtlar:


11

Python konsolunda aşağıdakileri çalıştırın:

import sys
sys.path

PYTHONPATH girişinizin listelenip listelenmediğine bakın. Tahmin etmiyorum, çünkü bu ortam değişkeni muhtemelen QGIS'in çalışan Python'u tarafından kullanılamıyor.

Komut dosyalarınızı konsolun sys.path dosyasına eklemek için düzenli bir append () yapın:

sys.path.append('~/Scripts/python')

O zaman bu konsol oturumu için modüllerinizi oradan içe aktarabilmelisiniz. ~ Öğesini kullanıcının tam giriş yoluna genişletmenizi öneririm (Python'un ~ genişletip genişletmediğinden emin değilim).

DÜZENLEME : ~ genişleme olmaz (Mac üzerinde en az) sys.path tarafından desteklenen gibi görünüyor.

QGIS'in Python konsolu bir Python modülü olan 'console.py' tarafından oluşturulur. Bu nedenle, özel yolunuzu sys.path dosyasına daha kalıcı bir şekilde eklemek istiyorsanız, console.py dosyasını düzenleyin ve sys.path.append ('path / to / my / scripts') deyimini modülün sonuna ekleyin ithalat bölümü.

console.py burada bulunur (Mac için KyngChaos.com QGIS paketini kullanarak ):

/Applications/QGIS.app/Contents/Resources/python/qgis/console.py

Tabii ki, bu bir QGIS.app güncellemesinde silinecek ve yeniden yapılması gereken bir saldırı.

Çalışan QGIS Python tercümanının sys.path dosyasında yapılan herhangi bir ayarlama diğer eklentiler için de yapılabilir.

Daha güvenli bir alternatif, sys.path.append () yöntemini yükleyen ve yükleyen basit, geliştirme PyQGIS eklentisi yapmak olabilir. Bu yolu eklenti unload () üzerinde sys.path dosyasından da kaldırabilir. Böyle bir eklentinin sys.path ayarının zaten yüklü bir konsolda mevcut olup olmadığını test etmedim (tahmin ediyorum, olurdu.)


Hack'in şu ana kadar benim için iyi çalışıyor. Çok teşekkür ederim. Ubuntu 12.04'te dosya /usr/share/pyshared/qgis/console.py
Renaud

Mükemmel! Bu arada, Python konsolunu eklenen yoldan haberdar etmek için QGIS'imi Windows 7'de yeniden başlatmam gerekiyordu.
Dirk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.