İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Golang ile Yazdığımız Fonksiyonları Python'da Çalıştırma | Ar-Ge Kulübü

b0mb - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Nereden:
İzmir
Yaş:
17
Mesajlar:
471
Konular:
64
Teşekkür (Etti):
143
Teşekkür (Aldı):
221
Ticaret:
(0) %
25-01-2018 02:56
#1
Golang ile Yazdığımız Fonksiyonları Python'da Çalıştırma | Ar-Ge Kulübü
Merhabalar,

Bu konuda, Golang ile yazdığımız fonksiyonları nasıl shared object olarak export edip Python ile kullanabileceğimizden bahsedeceğim.

Her şeyden önce, Go ile bir fonksiyon yazalım.

Kod:
package main

import "C"

//export sum
func sum(x, y int) int {
    return x + y
}

func main() {}
Fonksiyon tanımlamadan önce kullandığımız, "//export sum" yorum satırı önemli. O olmadan fonksiyonu dışarıdan çağıramayız. Bu fonksiyonu Python ile çağırmak için önce "c-shared" modu ile build etmeliyiz kodu.

Kod:
$ go help buildmode
The 'go build' and 'go install' commands take a -buildmode argument which  
indicates which kind of object file is to be built. Currently supported values  
are:

[...]

-buildmode=c-shared
    Build the listed main packages, plus all packages that they
    import, into C shared libraries. The only callable symbols will
    be those functions exported using a cgo //export comment.
    Non-main packages are ignored.

[...]
Gördüğünüz üzere, yorum satırı olayı yukarıda belirtilmiş zaten. Biz devam edelim, hemen kodu build edelim.


Komutu çalıştırdığımız dizine başarılı bir şekilde shared library olarak export edebildik kodumuzu. Artık Python üzerinden çağırmak kaldı geriye. Bunun için, "ctypes" kütüphanesinden yararlanacağız.


Başarılı bir şekilde Python üzerinden Go ile yazdığımız fonksiyonu çağırdık. Anlayamadığınız yerde, bilgim neticesinde yardımcı olurum, kolay gelsin

Yararlanılan Kaynaklar:
Konu b0mb tarafından (25-01-2018 02:59 Saat 02:59 ) değiştirilmiştir.
chesstrum, Javabex, mes9446 Teşekkür etti.
iscorpix - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2012
Mesajlar:
4.403
Konular:
538
Teşekkür (Etti):
840
Teşekkür (Aldı):
1181
Ticaret:
(0) %
25-01-2018 02:57
#2
Emeklerine sağlık
b0mb Teşekkür etti.
b0mb - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Nereden:
İzmir
Yaş:
17
Mesajlar:
471
Konular:
64
Teşekkür (Etti):
143
Teşekkür (Aldı):
221
Ticaret:
(0) %
25-01-2018 03:25
#3
Şurada verdiğim örnek ile bir test yaptım, sorunsuz çalıştı

chesstrum - ait Kullanıcı Resmi (Avatar)
Tamamen Forumdan Uzaklaştırıldı
Üyelik tarihi:
01/2018
Nereden:
@Rooting
Mesajlar:
845
Konular:
91
Teşekkür (Etti):
492
Teşekkür (Aldı):
190
Ticaret:
(0) %
25-01-2018 03:26
#4
Sorunsuz çalışıyor ellerine sağlık teşekkürler bu aras
TheSparrow - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2016
Nereden:
57. ALAY
Mesajlar:
804
Konular:
211
Teşekkür (Etti):
134
Teşekkür (Aldı):
215
Ticaret:
(0) %
25-01-2018 03:28
#5
Ellerinize sağlık
---------------------
★═══════════════════★
Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur.
★═══════════════════★
☾★

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı