Çözüldü Cython Import Örneklendirmesi Hk.

  • Konuyu açan Konuyu açan IFS
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 927
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

IFS

Yasaklanmış Üye
Cezalı
Mesaj
258
Çözümler
6
Beğeni
214
Puan
779
Ticaret Puanı
0
Merhabalar,

Yeniden bir konu hakkında rahatsızlık verdim, mazur görün lütfen.

Sorum kısa ve basittir.

Python Dosyalarında başlangıçta yazılan IMPORT Örneği:
Genişlet Daralt Kopyala
import localeInfo as _localeInfo
localeInfo = _localeInfo.localeInfo()

Yukarı da yer alan kod bloğu dinamik bir modül sistemine sahip Cython dosyasında nasıl tanımlanmalıdır?

1624914095807.webp


Keyifli forumlar.
 
Soruyu tam olarak anlayamadım. Bende cython kullanıyorum. Normalde olduğu gibi import etmek yeterli. Sizde görmüyor mu dosyayı?
 
  • Beğen
Tepkiler: IFS
Soruyu tam olarak anlayamadım. Bende cython kullanıyorum. Normalde olduğu gibi import etmek yeterli. Sizde görmüyor mu dosyayı?
Hayır, maalesef dinamik modül olarak eklenmesi gerekiyor. Özel bir cython yapısı mevcut dosyalarda sanırsam.

Çünkü şöyle örnek vereyim size, örnek normal bir cython'de şu şekilde olurken;
Python:
Genişlet Daralt Kopyala
    def Open(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "uiscript/LoadingWindow_New.py")
        except:
            import exception
            exception.Abort("LodingWindowOpen - LoadScriptFile Error")

        chrSlot = self.stream.GetCharacterSlot()
        net.SendSelectCharacterPacket(chrSlot)

Benim kaynak dosyalarımda bu şekilde olması gerekiyor;
Python:
Genişlet Daralt Kopyala
    def Open(self):
        try:
            pyScrLoader = ui.PythonScriptLoader()
            pyScrLoader.LoadScriptFile(self, "uiscript/loadingwindow.py")
        except:
            _dynamic_modules_import("exception").Abort("LodingWindowOpen - LoadScriptFile Error")

        chrSlot = self.stream.GetCharacterSlot()
        net.SendSelectCharacterPacket(chrSlot)

Aksi bir durumda derleme işlemi esnasında hata ile karşılaşıyoruz.
 
Mesela import net yerine şu şekilde mi dahil ediyorsunuz?
_dynamic_modules_import("net")
 
Mesela import net yerine şu şekilde mi dahil ediyorsunuz?
_dynamic_modules_import("net")

Dosya başında yer alan klasik importları şu şekilde;

Python:
Genişlet Daralt Kopyala
(app, background, constInfo) = _dynamic_modules_import("app", "background", "constInfo")

def ve diğer fonksiyonlar altında except: altında bulunan importları ise
Python:
Genişlet Daralt Kopyala
            _dynamic_modules_import("exception").Abort("LodingWindowOpen - LoadScriptFile Error")

diğer import türlerini ise
Python:
Genişlet Daralt Kopyala
            dbg = _dynamic_modules_import("dbg")

Ancak sormak istediğim soru tam olarak şu aslında;
Python:
Genişlet Daralt Kopyala
# -*- coding: cp1252 -*-

(app, player, net, chr, chrmgr, background,\
    chat, effect, event, exchange, guild,\
    ime, item, messenger, quest, skill, snd,\
    systemSetting, textTail) = _dynamic_modules_import("app", "player", "net", "chr", "chrmgr", "background", "chat", "effect", "event", "exchange", "guild", "ime", "item", "messenger", "quest", "skill", "snd", "systemSetting", "textTail")

(os, dbg, grp, wndMgr, constInfo, constInfo2,\
    ui, uiCommon, uiPhaseCurtain, uiMapNameShower,\
    uiAffectShower, uiPlayerGauge, uiCharacter,\
    uiTarget, uiToolTip, uiPrivateShopBuilder,\
    mouseModule, consoleModule, localeInfo,\
    playerSettingModule, interfaceModule,\
    musicInfo, debugInfo, stringCommander) = _dynamic_modules_import("os", "dbg", "grp", "wndMgr", "constInfo", "constInfo2", "ui", "uiCommon", "uiPhaseCurtain", "uiMapNameShower", "uiAffectShower", "uiPlayerGauge", "uiCharacter", "uiTarget", "uiToolTip", "uiPrivateShopBuilder", "mouseModule", "consoleModule", "localeInfo", "playerSettingModule", "interfaceModule", "musicInfo", "debugInfo", "stringCommander")

Yukarı da importlar arasında yer alan, localeInfo importunu aşağıda ki şekle getirmem gerekiyor, ancak yukarıda ki import tarzında bunu nasıl yapabilirim açıkçası bilemiyorum.

Anlatım da yer alan açıklama aynen şu şekilde;
Python:
Genişlet Daralt Kopyala
## Replace all (root/uiscript)

import localeInfo

## with

import localeInfo as _localeInfo
localeInfo = _localeInfo.localeInfo()

Bunu nasıl uyum sağlatabilirim :)
 
Şu şekilde deneyebilir misiniz?
Python:
Genişlet Daralt Kopyala
localeInfo = _dynamic_modules_import('localeInfo').localeInfo()
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst