2016-03-05 30 views
10

GIMP için bir eklenti geliştirmem gerekiyor ve Python düzenleme vb. Için PyCharm ile kalmak isterim.GIMP eklenti geliştirme için PyCharm nasıl kullanılır?

FYI, Windows'ta yaşıyorum. Pycharm Python yorumlayıcısı yardımıyla yönlendirerek sonra

GIMP ile birlikte:

enter image description here

:

Project interpreter

Ben de from gimpfu import * hatanın kurtulmak için gimpfu.py yolunu eklendi Bu, Excluded olarak ayarlandığında bile içe aktarmadaki hatayı düzeltir.

Ben

enter image description here

vb sabitler gibi RGBA-IMAGE, TRANSPARENT_FILL, NORMAL_MODE hatalarını olsun hala oynayan içine pycharm çarpıtmak konusunda herhangi bir fikir Sources, Resources ve Excluded bu dizini belirleme ve deneyler GIMP eklenti geliştirme için güzel mi? Gerçekten pycharm gelen herhangi bir kod çalıştıran Değil

, gerçekten sadece revizyonları kontrolünü kolaylaştırmak, güzel kod editörü olarak kullanılırken bunları vs.

+0

Gerçek hatalar veya uyarılar alıyor musunuz? –

+0

Muhtemelen çok önemli bir ipucu: hata ne diyor? Farenizi kırmızı kıvırcık çizginin üzerine getirirseniz, PyCharm ne diyor? – Ian

+0

Bu şeyleri açıkça içe aktarmayı denediniz mi? Gimpfu'yu içe aktarmayı denedim, sonra gimpfu.RGBA_IMAGE gibi sabitlere eriştim. – fodma1

cevap

4

Bu değişkenler .pyd dosyaları (Python için dll files) bir parçası olan buldukça. PyCharm bu dosyaların içeriği için imza alamıyor. Python yerleşikleri için

(gibi abs, all, any, vs.) pycharm sadece imzalar ve Dokümanlar için kullandığı kendi .py dosyalar var sahiptir.

def abs(*args, **kwargs): # real signature unknown 
    """ Return the absolute value of the argument. """ 
    pass 

def all(*args, **kwargs): # real signature unknown 
    """ 
    Return True if bool(x) is True for all values x in the iterable. 

    If the iterable is empty, return True. 
    """ 
    pass 

def any(*args, **kwargs): # real signature unknown 
    """ 
    Return True if bool(x) is True for any x in the iterable. 

    If the iterable is empty, return False. 
    """ 
    pass 

size gibi: aşağıdaki içeriğe sahip klasör var içinde

enter image description here

pycharm builtins.py dosyayı açacaktır: Bu funcs bazı tıklayıp 's beyanına gidersiniz eğer Görebiliyorsun işlevler tanımlanır ve belgelenir, ancak hiçbir uygulama yoktur, çünkü bunların uygulaması C ile oluşturuldu ve bir dosyaya yerleştirildi. Pycharm, her kitaplık için bu tür bir sarıcı sağlayamaz. Genellikle .pyd dosyalarını oluşturan kişiler, .py sarmalayıcılarını sağlarlar (örneğin, PyQt modülü: yerel python uygulaması yok, sadece imzalar).

Gimp'in bazı değişkenler için böyle bir sarıcısı olmadığı anlaşılıyor. Gördüğüm tek yol, elle kendi türünde bir sarıcı oluşturmaktır.

RGBA_IMAGE = 1 
TRANSPARENT_FILL = 2 
NORMAL_MODE = 3 

Ve eklentisi oluştururken yaparken içe: Örneğin, aşağıdaki içeriğe sahip gimpfu_signatures.py oluşturmak

from gimpfu import * 
from gimpfu_signatures import * # comment on release 

zarif, ama hiçbir şey daha iyi o zaman değil.

... gimpfu.py 'ın yol hakkında

Bir daha dikkat. Doğru anladıysam, projeye bu yolu eklediniz. Çalışabilir, ancak doğru şekilde projenin PYTHONPATH (proje tercihlerinde) eklenmesidir. Detaylı kullanım kılavuzu için this link'a bakınız.

+0

Bunun için teşekkürler. Yarın ayrıntılı olarak inceleyeceğim. Korkarım ki bu yaklaşımın tek yolu, istenmeyen bir yapay ithalat olabilir. –

+0

Bu, GIMP'nin sunması gereken bir şeyse ve birileri buna katkıda bulunacaksa (tercihen bir yapım sırasında güncellenecek şekilde), bunu kesinlikle GIMP'ye kabul ediyoruz. –

+0

Verilen cevap tam olarak doğru cevap değil ama yine de ödülü vereceğim. –