İnternetsiz ortamda kütüphane kurmak

VMware içinde olan etabse uygulama geliştiriyorum vmware da internet olmadığı için python ve ideleri ana bilgisayarımdan exeleri kullanarak yükledim ama iş kütüphanelere geldiği zaman kendi bilgisayarımdan site-packages’ın içinden kopyalayıp vmware’ın içindeki dosya yoluna attım ama comtypes kütüphanesinde hata veriyor (program içinde time, pyqt5, pyautogui, sys ve comtypes var sadece comtypes da hata veriyor) acaba etabs’i crackli kullandığım için mi yapıyor yada comtypes bu şekilde internetsiz ortamda kullanılamayacak bir kütüphane mi yardımcı olursanız çok sevinirim.

import comtypes.client as cc
import pyautogui as pyg
import time
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QMessageBox
import sys
import ss_Ekranı_Win as sew

class Check(QtWidgets.QMainWindow):
    def __init__(self):
        super(Check, self).__init__()
        self.ui = sew.Ui_MainWindow()
        self.ui.setupUi(self)
        
        self.ui.baslat_ss_pushButton.clicked.connect(self.ss_Al)
    
    def ss_Al(self):
        ETABSObject = cc.GetActiveObject("CSI.ETABS.API.ETABSObject")
        SapModel = ETABSObject.SapModel
    
        ret_setPlanView = SapModel.Story.GetStories()
    
        ret_story_list = list(ret_setPlanView)
        ret_story_list.sort()
        ret_story_array = set(ret_story_list)
        print(ret_story_array)
    
        
        time.sleep(3)
        sayac = 1
        a = 432
    
        for i in ret_story_array:
            ad = "alıntı" + str(sayac) + ".png"                        
            pyg.moveTo(95,40)
            pyg.click(button='left', clicks=1, interval=0.5)
            pyg.moveTo(95,90)
            pyg.click(button='left', clicks=1, interval=0.5)
            pyg.moveTo(840,a)
            pyg.click(button='left', clicks=1, interval=0.5)
            pyg.moveTo(870,735)
            pyg.click(button='left', clicks=1, interval=0.5)
            pyg.screenshot(ad, region=(30,140,925,819))
            sayac += 1
            a += 13
        pyg.alert(text='Ekran görüntüleriniz hazırlandı.', title='Perform Mühendislik & Müşavirlik', button="Tamam")

def app():
    app = QtWidgets.QApplication(sys.argv)
    window = Check()
    window.show()
    sys.exit(app.exec_())

app()

Not:Programı test edemediğim için yazdığım kod hatalı mı veya kafamda yapmak istediğim olayı bu şekilde yapabilir miyim bilmiyorum. Amacım etabs’in içinde önce view a sonra set plan view a basıcak şekilde bir ss otomasyon görüntüsü alma uygulaması comtypes’ı kullanma amacım her projedeki kat sayısı farklı olduğu için projeye göre kat sayısı kadar almak bilgisayarında etabs olan biri deneyebilirse çok sevinirim aynı zamanda soruna yardımcı olabilirseniz çok sevinirim.

Şimdiye kadar wmware kullanıp internete bağlanamadığım olmadı.

Çoğunlukla kendi kolayca konfigüre edildi ama istisna durumlar içib;

VMware Workstation Network Ayarları - ÇözümPark (cozumpark.com)

VMware Workstation Network Ayarları - YouTube

Hata veriyordur kesin. Ama ne hata verdiğini yazmamışsın. Hata mesajları hatalar anlaşılsın ve düzeltilebilirse düzeltilsin diye verilir. Ne hata verdiği çözümün ipucudur.

Belki burada paylaşırsan bu durumda bir çözüm bulunabilir.

Hayır com internetsiz kullanılmayacak bir kütüphane değil. Ama hata mesajını görmeden sorunun kaynağını bilemeyiz. Hayır etabs ı crackli kullandığın için de değil. Ama başlatman gereken bir server yada com objesi bypass lanmış olabilir. Patch yapılan bir uygulama yada lisans serverı düşük ihtimal buna sebep olabilir.

Zaten com arayüzü bu işe yarar, 3. parti yazılımlar ile arayüz oluşturmak için. Yine de kütüphane kurulumlarını şu şekilde deneyebilirsin.

How to Manually Install Python Packages? - GeeksforGeeks

Kurulamıyor ise, com kütüphanesinin bağımlı olduğu kütüphane listesini temin edip, onları da manuel olarak kurman gerekiyor olabilir. Sonuçta kütüphaneler de kütüphanelere bağımlı olabilir. Bunları tespit edebilmemizin yolu ancak hata mesajı ile olabilir.

Kolon kiriş kesitleri ve statik hesapları hiç sevdiğim işler değildir. :slight_smile:

Umarım kurmuş biri kodunu test eder. Ama o ana kadar bence şu hata mesajını paylaşsan fena olmaz.

İnternete bağlanamamak değil de direk bağlanmamak vmware ı kullanma amacımız internetsiz kullanmak zaten.

ModuleNotFoundError: No module named ‘comtypes.client’; ‘comtypes’ is not a package

Alakası var mı bilmiyorum ama Bu satırdaki cc. yı silip comtypes.client. yazdım şuan o hatayı almıyorum

UnboundLocalError: local variable ‘details’ referenced before assignment

Ama yeni bir hata kodum var onu paylaşiyim ona bakabilirseniz çok sevinirim.

Zevk meselesi ben olsam normal kurar inernet erişimini program için kısıtlardım.

Bu modül kurulamamış, yukarıda verdiğim linkteki gibi kurmayı tekrar deneyebilirsin. Kurulum aşamalarını dikkatli takip ederek.

Burada cc yerine yazmanız çok anlamlı değil cc ile bir farkı olduğunu düşünmüyorum.

Madem cc ile tanımlamayı kaldırdınız.

from comtypes from *

ile tüm paketi almayı deneyebilirsin.

Söylediğim gibi hata mesajları ipucu.

Ama öncelikli olarka verdiğim linkteki kurulum adımlarına bakın mutlaka.

Sıkıntı yok orada zaten cmd’ de python konsolunda denediğim zaman hata vermemişti.

AttributeError: module 'comtypes.gen.CSiAPIv1' has no attribute 'cOAPI'

Bu hatanın çözümü nedir acaba hala kurulamama hatası gibi bi

Bununda çözümü hakkında bilginiz var mıdır acaba

Bu adam da arıyor bu hatanın nedenini, henüz bulamamış.

AttributeError: module ‘comtypes.gen.CSiAPIv1’ has no attribute ‘cOAPI’ - Structural engineering general discussion - Eng-Tips

Ama biri şöyle bir öneride bulunmuş…

ETABS 19 Import comtypes.client issue - Developers - Dynamo (dynamobim.com)

Hello @moustafa.el-sawy and welcome
I don’t know which software you want to communicate with but you don’t necessarily need this module, IronPython supports accessing OleAutomation objects (COM objects )

Derki hangi yazılımla haberleşmek istediğini bilmiyorum ama bu modüle ihtiyaç yok.

IronPython Ole Otomasyon nesnelerine erşimi destekliyor…

Verdiği örnek linki de burada.

IronPython .NET Integration

Etabs ın ole arayüzü diğerlerinden farklı değildir.

Ama kullandığın kütüphane ve aldığın hata çok yaygın görünmüyor.

Tabi ki kurup deneyip bir çözüm üretilebilir, ama işi fantazi boyutuna taşıyıp bir de sanal makine üzerinde tutunca, yollar (path) ve bir çok ekstra sorun da bir arada ihtimaller arasına giriyor…

Daha etabs arayüzü, python 2.xxx mi 3.xxx arayüzüne uygun com kütüphanesi ile haberleşebiliyor kestriemiyorum dahi.

Yani alternatif modüle de bakabilirsin.

Söylediğim gibi, wmware kurup senin kurduğun ile aynı işletim sistemi yükleyip, etabs kuracak birini çok sık buralarda bulamazsın.

Modül ben ulaşılabilir değilim diye bar bar baırıyor.

Yerel değişken details ilk ataması yapılmadan (değer yüklenmeden) önce çağırılmış hatası alıyorsun.

Bu details değişkeni hangi kütüphanenin içindedir, hangi değer ataması yapılmadna nereden çağırılmış kodunda göremiyrum.

Bunlar zaten kütüphanenin doğru kurulmadığının ve çalışmadığının belirtileri.

Com nesnenin niteliklerini de bilemiyorum. Belki etabs ın geriye uyumlu olmayan bir versiyonu, olmayan niteliğini çağırmaya çalıştığın için dahi olabilir.

İhtimal çok çözüm kısıtlı.

Doğru python sürümü, doğru etabs sürümü doğru kütüphane kurulumu önemli. Yoksa com zaten kolayca yazılmlar arasında arayüz oluşturmak için tasarlanmıştır. Sorun comda değil, com u kullanmak istediğin kütüphane ve yazılımda.

Yine de bakıştırıyorum. Bir çözüm bulabilirsem yada aklıma bir şey gelirse eklerim. Yardımcı olmak isterim ama şu an çok genel problemlolan bir durumla karşı karşıya değilsin. Bu nedenle basit hazır bir çözüm görünmüyor.

1 Beğeni

Kütüphaneleri pip ile kurunuz. Site-packages içindeki klasörleri kopyalamak yerine PyPI’den elle indirebileceğiniz kurulum dosyalarını VM’ye aktarıp dosyayı pip ile kurabilirsiniz.