Partially initialized module 'DB' has no attribute 'Databases' (most likely due to a circular import)

Merhaba değerli üstatlar. Başlıkta belirttiğim hatayı alıyorum. Biraz araştırdım, içe aktarılan modülle aynı adda bir yerel dosya varsa bunun olabileceği söyleniyor. Isim değiştirdim vs yine fayda etmedi :slight_smile:

Hatanın tamamı :

'97ecefd0-99e2-454b-bd52-2928893b7944' kimlikli kullanıcı başarıyla oluşturuldu.
Traceback (most recent call last):
  File "f:\Education\ZyroServer\Accounts.py", line 5, in <module>
    import DB
  File "f:\Education\ZyroServer\DB.py", line 3, in <module>
    import Accounts
  File "f:\Education\ZyroServer\Accounts.py", line 105, in <module>
    test.CreateAccount("Falanca", "Filanca", "Fistanca", "1234568790", "testtest@gmail.com")
  File "f:\Education\ZyroServer\Accounts.py", line 101, in CreateAccount
    DB.Databases.addToDB(account)
AttributeError: partially initialized module 'DB' has no attribute 'Databases' (most likely due to a circular import)

Kodların tamamı :

import Generator

import os

import json

import datetime

import DB

# Account Management

class Account:

    # Props

    def __init__(self, user_id,

                 firstName, lastName,

                 email, username,

                 password,

                 accountKEY,

                 register_date):

        

        self.user_id = user_id

        self.firstName = firstName

        self.lastName = lastName

        self.email = email

        self.username = username

        self.password = password

        self.accountKEY = accountKEY

        self.register_date = register_date

    

class UserRepository:

    def __init__(self):

            self.users = []

            self.IsLoggedIn = False # Varsayılan olarak login olmamış.

            self.currentUser = {}

            

            self.loadUsers()

            

    def loadUsers(self):

            # Dosya var?

            if os.path.exists('AccInformation.json'): # True ise......

                with open('AccInformation.json', 'r', encoding='utf-8') as file:

                    users = json.load(file)

                    

                    for user in users:

                        user = json.loads(user)

                        newUser = Account(

                            user_id = user['user_id'],

                            firstName = user['firstName'],

                            lastName = user['lastName'],

                            email = user['email'],

                            username = user['username'],

                            password = user['password'],

                            accountKEY = user['accountKEY'],

                            register_date = user['register_date'])

                        

                        self.users.append(newUser)

                    #print(self.users)

            else:

                print("""'AccInformation' adlı Dosya bulunamadı.""")

        

        #  Dışarıdan gelen user bilgisinin tipinin ise Account olmasını istiyoruz

        

    def AccountRegister(self, user: Account):

            self.users.append(user)

            self.saveToFile()

            #print(f"""'{user.user_id}' kimlikli kullanıcı başarıyla oluşturuldu.""")

            

    def login(self, username, password):

        for user in self.users:

            if user.username == username and user.password == password:

                self.IsLoggedIn = True

                self.currentUser = user

    

    def saveToFile(self):

        list = []

        

        for user in self.users:

            list.append(json.dumps(user.__dict__))

        

        with open('AccInformation.json', 'w', encoding='utf-8') as file: # listeyi gönderiyoruz ve dosya içerisine kaydediyoruz.

            json.dump(list, file)

            

    # Create account      

    

    def CreateAccount(firstName, lastName, username, password, email):

        repository = UserRepository()

        igenerator = Generator.Production() # #For license and id...

        

        #Auto construction

        user_id = igenerator.id_generator()

        account_key = igenerator.license_generator()

        ock = datetime.datetime.now()

        date_time = datetime.datetime.ctime(ock)

        account = Account(user_id = user_id,

                          firstName = firstName,

                          lastName = lastName,

                          username = username,

                          password = password,

                          email = email,

                          accountKEY = account_key,

                          register_date = date_time)

        

        repository.AccountRegister(account)

        DB.Databases.addToDB(account)

Göndermem gereken bir şeyler varsa daha gönderebilirim :smiley:

Merhaba,

Accounts.py içinde DB.py yi,
DB.py içinde de Accounts.py yi import etmişsiniz. Bu da

most likely due to a circular import

Hatasına sebebiyet vermiş. Eğer import ettiğiniz diğer dosyaların kodlarını da verirseniz size daha fazla öneri verebilirim.

1 Beğeni

Hocam evet dediğiniz gibi, değiştirdim oldu :slight_smile: Çok çok teşekkürler

1 Beğeni