简体   繁体   中英

How to Import files from another folder in python?

How to import files from another folder, try so many things, but my attempt is not fruitful. How to resolve it?

-> d:
   -> project Main
      -> First Folder
         -> my_main_file.py
            -> class (My_Main_Class)
               -> module1
               -> module2
               -> module3
      -> Second Folder 
         -> my_second_file.py    

How to import module1 and module 3 from my first file(my_main_file.py) into my _second_file.py

My_main_file This is my main file('d:/project_main/main folder'). now I want to import modules "establish_connection_general and other things to my second file. ( d:/project_main/second_folder)

    from PyQt5.QtWidgets import QWidget,QMessageBox,QApplication
    from PyQt5.QtGui import QIcon

    import sqleet
    import os
    import sys
    print("1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    
    file_path_general = r"d:\project makeeasy\assist"
    db_name_general = (os.path.join(file_path_general,'makeeasy_general.me'))
    
    passkey_general = "1234"
    new_passkey_general = "1234"
    
    show_errormsg = "show"
    
    
    class Database_connection(QWidget):
    
        def __init__(self):
            super(). __init__()
            self.establish_connection_general()
            # self.cahnge_passkey()
    
        def establish_connection_general(self):
            try:
                connection_general = sqleet.connect(db_name_general,key = passkey_general)
                print("open scueffully")
            except Exception as e:
                if show_errormsg == "show":
                    self.handle_error(e)
                else:
                    pass
    
    
        def cahnge_passkey(self):
            try:
                general_connection = sqleet.connect(db_name_general,key = passkey_general)
                general_connection.change_key(new_passkey_general)
                print("new pass key sucessfully changed")
                general_connection.close()
    
            except Exception as e:
                if show_errormsg == "show":
                    self.handle_error(e)
                else:
                    pass
    
        def handle_error(self,error):
            exc_type, exc_value, exc_traceback = sys.exc_info()
            filenamewithpath = exc_traceback.tb_frame.f_code.co_filename
            head,tail = os.path.split((filenamewithpath))
            lineno = exc_traceback.tb_lineno
            name = exc_traceback.tb_frame.f_code.co_name
            type = exc_type.__name__
            message = exc_value
            nl = '\n'
            kk = f'File Name : {tail[:-3]}{nl}'\
                 f'Line No. : {lineno}{nl}'\
                 f'Type : {type}{nl}'\
                 f'Name : {name}{nl}'
            self.msg = QMessageBox()
            self.msg.setFixedSize(1600,400)
            self.msg.setWindowTitle("  Error/Bugs Information")
            self.msg.setWindowIcon(QIcon('icon\close006.png'))
            fd = "                                                                           "
            self.msg.setText(f'{type} - {lineno}{fd}')
            self.msg.setIcon(QMessageBox.Information)
            self.msg.setStandardButtons(QMessageBox.Ok)
            self.msg.setDefaultButton(QMessageBox.Ok)
            self.msg.setInformativeText("")
            self.msg.setDetailedText(kk)
            self.msg.show()
    
    def main():
        app = QApplication(sys.argv)
        ex = Database_connection()
        app.setStyle("Fusion")
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()

in my_second_file.py

from First_Folder.my_main_file import My_Main_Class

After Your comment:

from First_Folder.my_main_file import ex(your class object)

In your second file

ex.module1()
ex.module3()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM