프로젝트

일반

사용자정보

개정판 8fd51d32

ID8fd51d32cac3cc8e49582081b76533d245c4a702
상위 d3f722ce
하위 6ac63897

백흠경이(가) 3년 이상 전에 추가함

- CommonAppDataFolder 대신 LocalAppDataFolder를 사용하도록 수정

Change-Id: I351db544411c6f6f6583d5ed88532bd36e0f4111

차이점 보기:

DTI_PID/DTI_PID/App.py
33 33
    COMPANY = 'DOFTECH'
34 34
    NAME = 'Digital P&ID'
35 35
    THREAD_MAX_WORKER = os.cpu_count()
36
    COMMON_APP_DATA_FOLDER = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
37
    LOCAL_APP_DATA_FOLDER = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
38

  
36 39

  
37 40
    def __init__(self, args):
38 41
        import locale
......
173 176
    @history    18.04.23    Jeongwoo    Change method to execute ProjectDialog(dlg.exec_()→dlg.showDialog())
174 177
'''
175 178
if __name__ == '__main__':
176
    import cv2
179
    import shutil
177 180
    from License import QLicenseDialog
178 181
    from ProjectDialog import Ui_Dialog
179 182
    from MainWindow import MainWindow
180 183
    from ExceptionHandler import QExceptionHandler
181 184

  
185
    '''copy all files in COMMON_APP_DATA FOLDER to LOCAL_APP_DATA_FOLDER'''
186
    try:
187
        if not os.path.exists(App.LOCAL_APP_DATA_FOLDER):
188
            shutil.copytree(App.COMMON_APP_DATA_FOLDER, App.LOCAL_APP_DATA_FOLDER)
189
    except Exception as ex:
190
        message = f'error occurred({ex}) in {sys.exc_info()[-1].tb_frame.f_code.co_filename}:' \
191
                  f'{sys.exc_info()[-1].tb_lineno}'
192
        print(message)
193

  
194
    '''up to here'''
195

  
182 196
    app_doc_data = AppDocData.instance()
183 197
    configs = app_doc_data.getAppConfigs('app', 'update_url')
184 198

  
DTI_PID/DTI_PID/AppDocData.py
310 310
        @history    2018.06.29  Jeongwoo    Change method to get template db path
311 311
    '''
312 312
    def getTemplateDbPath(self):
313
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
313
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
314 314
        templateDbPath = os.path.join(path, 'Template.db')
315 315
        return templateDbPath
316 316

  
317 317
    def get_template_symbol_library_path(self):
318 318
        """return template symbol library path"""
319 319

  
320
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
320
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
321 321
        return os.path.join(path, 'SymbolLibrary.syl')
322 322

  
323 323
    def getAppDbPath(self):
......
327 327
        @date       2018.10.01
328 328
        """
329 329

  
330
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
330
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
331 331
        app_database = os.path.join(path, 'App.db')
332 332
        return app_database
333 333

  
......
706 706

  
707 707
    def buildAppDatabase(self):
708 708
        """build application database"""
709
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
709
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
710 710
        appDatabaseFilePath = os.path.join(path, 'App.db')
711 711

  
712 712
        # Creates or opens a file called mydb with a SQLite3 DB
......
763 763
    def loadAppStyle(self):
764 764
        style = 'Fusion'
765 765

  
766
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
766
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
767 767
        if not os.path.exists(path): os.makedirs(path)
768 768

  
769 769
        self.buildAppDatabase()
......
801 801
        try:
802 802
            self.buildAppDatabase()
803 803

  
804
            path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
804
            path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
805 805
            appDatabaseFilePath = os.path.join(path, 'App.db')
806 806

  
807 807
            # Creates or opens a file called mydb with a SQLite3 DB
......
887 887
        @history    humkyung 2018.04.19 return Project.db in Program Data folder instead of PROJECT_DB_PATH variable
888 888
    '''
889 889
    def getPrjDatabasePath(self):
890
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
890
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
891 891
        if not os.path.exists(path): os.makedirs(path)
892 892

  
893 893
        prjDatabaseFilePath = os.path.join(path, 'Project.db')
......
925 925
            @author euisung
926 926
            @date   2019.04.02
927 927
        '''
928
        return os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'Explode.svg')
928
        return os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'Explode.svg')
929 929

  
930 930
    def updateTitleBlockProperties(self, titleBlockProps):
931 931
        '''
......
4459 4459
    def get_ext_apps(self):
4460 4460
        """get external application information from App.db"""
4461 4461

  
4462
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
4462
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
4463 4463
        app_database_path = os.path.join(path, 'App.db')
4464 4464
        with sqlite3.connect(app_database_path) as conn:
4465 4465
            try:
......
4483 4483
    def set_ext_apps(self, model:QStandardItemModel) -> None:
4484 4484
        """ save ext apps to database """
4485 4485

  
4486
        path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
4486
        path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
4487 4487
        app_database_path = os.path.join(path, 'App.db')
4488 4488
        with sqlite3.connect(app_database_path) as conn:
4489 4489
            try:
DTI_PID/DTI_PID/ConfigurationDialog.py
46 46

  
47 47
            docData = AppDocData.instance()
48 48
            self.ui.comboBoxOCRData.addItem('eng')
49
            tessdata_path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'Tesseract-OCR', 'tessdata')
49
            tessdata_path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'Tesseract-OCR', 'tessdata')
50 50
            if os.path.isfile(os.path.join(tessdata_path, docData.getCurrentProject().name + '.traineddata')):
51 51
                self.ui.comboBoxOCRData.addItem(docData.getCurrentProject().name)
52 52

  
DTI_PID/DTI_PID/ExceptionHandler.py
22 22
    def __init__(self):
23 23
        super(QExceptionHandler, self).__init__()
24 24

  
25
        self.log_path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'id2.log')
25
        self.log_path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'id2.log')
26 26
        self.logger = logging.getLogger(__name__)
27 27
        logging.basicConfig(filename=self.log_path, filemode='a', level=logging.CRITICAL)
28 28

  
DTI_PID/DTI_PID/OcrResultDialog.py
102 102
        self.ui.pushButtonMakeTrainingImage.clicked.connect(self.pushButtonMakeTrainingImageClicked)
103 103

  
104 104
        self.ui.comboBoxOCRData.addItem('eng')
105
        tessdata_path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'Tesseract-OCR', 'tessdata')
105
        tessdata_path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'Tesseract-OCR', 'tessdata')
106 106
        if os.path.isfile(os.path.join(tessdata_path, app_doc_data.getCurrentProject().name + '.traineddata')):
107 107
            self.ui.comboBoxOCRData.addItem(app_doc_data.getCurrentProject().name)
108 108

  
DTI_PID/DTI_PID/TrainingImageListDialog.py
19 19
import numpy as np
20 20
import pyqtgraph as pg
21 21

  
22
dataPath = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID')
22
dataPath = os.path.join(os.getenv('USERPROFILE'), 'Digital PID')
23 23
tesseractPath = os.path.join(dataPath, 'Tesseract-OCR', 'tessdata')
24 24
pytesseract.pytesseract.tesseract_cmd = os.path.join(dataPath, 'Tesseract-OCR', 'tesseract.exe')
25 25
tesseract_cmd = os.path.join(dataPath, 'Tesseract-OCR', 'tesseract.exe')
......
108 108
        # Install the custom output stream
109 109
        # sys.stdout = EmittingStream(textWritten=self.normalOutputWritten)
110 110

  
111
        os.environ['TESSDATA_PREFIX'] = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'Tesseract-OCR',
111
        os.environ['TESSDATA_PREFIX'] = os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'Tesseract-OCR',
112 112
                                                     'tessdata')
113 113

  
114 114
        appDocData = AppDocData.instance()
DTI_PID/DTI_PID/tesseract_ocr_module.py
33 33
                humkyung 2018.08.13 set tesseract executable path to relative of this file path
34 34
                euisung             set tesseract executable path to ProgramData
35 35
'''
36
pytesseract.pytesseract.tesseract_cmd = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'Tesseract-OCR',
36
pytesseract.pytesseract.tesseract_cmd = os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'Tesseract-OCR',
37 37
                                                     'tesseract.exe')
38 38

  
39
tesseract_path = os.path.join(os.getenv('ALLUSERSPROFILE'), 'Digital PID', 'Tesseract-OCR')
39
tesseract_path = os.path.join(os.getenv('USERPROFILE'), 'Digital PID', 'Tesseract-OCR')
40 40
DEFAULT_CONF = """
41 41
    --psm {} -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-~.,/z !@#$%&*(){}[]<>:;+=?\\"
42 42
"""
build.bat
12 12
%VIRTUALENV_36X64% %WORKSPACE%\.venv
13 13
IF %ERRORLEVEL% NEQ 0 goto :ERROR
14 14

  
15
%WORKSPACE%\.venv\scripts\activate.bat & pip install -r .\DTI_PID\DTI_PID\requirements.txt & pyinstaller --uac-admin App.spec --onedir -p PyQt5 -w --log-level=DEBUG --hidden-import=tkinter,pyqtgraph,getmac,pkg_resources.py2_warn -y & deactivate
15
%WORKSPACE%\.venv\scripts\activate.bat & pip install -r .\DTI_PID\DTI_PID\requirements.txt & pyinstaller App.spec --onedir -p PyQt5 -w --log-level=DEBUG --hidden-import=tkinter,pyqtgraph,getmac,pkg_resources.py2_warn -y & deactivate
16 16
IF %ERRORLEVEL% NEQ 0 goto :ERROR
17 17

  
18 18
:EOF

내보내기 Unified diff