반응형
반응형

[python] Django  설치,  프로젝트 생성

 

 

django-admin 명령어를 실행하려고 했을 때 시스템이 해당 명령어를 찾지 못하는 경우 발생합니다. 일반적으로 Django가 설치되어 있지 않거나, 설치 경로가 시스템의 환경 변수에 추가되지 않은 경우입니다.

해결 방법

1. Django가 설치되어 있는지 확인

  • 다음 명령어로 Django가 설치되어 있는지 확인합니다:
     
    pip show django
    • Django 버전과 경로가 출력되면 설치가 되어 있는 상태입니다.
    • 아무 내용도 출력되지 않으면 Django가 설치되지 않은 상태입니다. 이 경우, 다음 명령어로 설치하세요:
       
      pip install django

2. django-admin 명령어를 전체 경로로 실행

  • 가상환경 또는 시스템 경로 문제로 인해 django-admin이 실행되지 않을 수 있습니다. 전체 경로로 실행해보세요:
     
    python -m django --version
    또는
     
    python -m django startproject myproject

3. PATH 환경 변수 확인

  • django-admin 명령어가 시스템의 환경 변수 PATH에 등록되지 않았을 가능성이 있습니다.
  • Django 명령어가 있는 경로를 확인합니다:
     
    where django-admin
    또는
     
    where django-admin.exe
    • 경로가 출력되면, 해당 경로를 확인하고 PATH에 추가해야 할 수 있습니다.
    • 경로가 출력되지 않으면 Django가 설치되지 않았거나, 가상환경을 활성화하지 않은 상태일 수 있습니다.

4. 가상환경 활성화

  • 가상환경을 사용하는 경우, 먼저 활성화해야 Django 명령어를 사용할 수 있습니다.
    • Windows:
       
      .\venv\Scripts\activate
    • macOS/Linux:
       
      source venv/bin/activate
  • 활성화 후 다시 django-admin 명령어를 실행합니다:
    •  django-admin startproject myproject

5. Django 명령어를 실행할 Python 버전 확인

  • 시스템에 Python 2와 Python 3이 함께 설치되어 있는 경우, django-admin 명령어가 제대로 연결되지 않을 수 있습니다.
  • Python 3로 명시적으로 실행해보세요:
     
    python3 -m django startproject myproject

예시: 새 프로젝트 시작하기

  1. 가상환경 생성 및 활성화:
  2.  
    python -m venv venv source venv/bin/activate # Windows는 venv\Scripts\activate
  3. Django 설치:
  4.  
    pip install django
  5. 새 프로젝트 생성:
  6.  
    django-admin startproject myproject

여전히 문제를 해결하지 못한 경우

  1. Python 및 Django 설치 상태를 확인하세요:
     
    python --version pip show django
     
     
     
     

반응형
반응형

파일 선택 창을 띄워 파일을 선택하고, 선택한 파일을 읽어서 내용을 출력하는 PyQt5 프로그램입니다. 파일 선택 창은 QFileDialog를 사용합니다.

선택한 파일이 엑셀 파일(.xlsx, .xls)인 경우, 엑셀 내용을 시트별로 읽어와 화면에 출력하고, 텍스트 파일인 경우 텍스트 내용을 그대로 보여주는 PyQt5 프로그램입니다.

엑셀 파일 처리를 위해 openpyxl 또는 pandas 라이브러리를 사용할 수 있습니다. 여기서는 pandas를 이용합니다.

 

 

 

import sys
import os
import pandas as pd
from PyQt5.QtWidgets import (
    QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QFileDialog, QTextEdit
)


class FileHandlerApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 윈도우 설정
        self.setWindowTitle("File Handler App")
        self.setGeometry(100, 100, 800, 600)

        # 레이아웃 설정
        layout = QVBoxLayout()

        # 파일 선택 버튼
        self.select_button = QPushButton("Select File", self)
        self.select_button.clicked.connect(self.select_file)
        layout.addWidget(self.select_button)

        # 파일 경로 표시
        self.file_path_label = QLabel("No file selected", self)
        layout.addWidget(self.file_path_label)

        # 파일 내용 표시
        self.file_content = QTextEdit(self)
        self.file_content.setReadOnly(True)
        layout.addWidget(self.file_content)

        # 레이아웃 적용
        self.setLayout(layout)

    def select_file(self):
        # 파일 선택 창 띄우기
        options = QFileDialog.Options()
        options |= QFileDialog.ReadOnly
        file_path, _ = QFileDialog.getOpenFileName(
            self, "Select File", "", "All Files (*);;Excel Files (*.xlsx *.xls);;Text Files (*.txt)", options=options
        )

        if file_path:
            # 선택한 파일 경로 표시
            self.file_path_label.setText(f"Selected File: {file_path}")

            # 파일 확장자 확인
            _, file_extension = os.path.splitext(file_path)

            # 파일 처리
            if file_extension in [".xlsx", ".xls"]:
                self.read_excel(file_path)
            elif file_extension == ".txt":
                self.read_text(file_path)
            else:
                self.file_content.setText("Unsupported file type. Please select an Excel or text file.")

    def read_text(self, file_path):
        """텍스트 파일을 읽어와 화면에 표시"""
        try:
            with open(file_path, 'r', encoding='utf-8') as file:
                content = file.read()
                self.file_content.setText(content)
        except Exception as e:
            self.file_content.setText(f"Error reading file: {str(e)}")

    def read_excel(self, file_path):
        """엑셀 파일을 읽어와 화면에 표시"""
        try:
            excel_data = pd.ExcelFile(file_path)  # 엑셀 파일 읽기
            content = "Excel File Content:\n\n"

            # 시트별로 데이터 읽기
            for sheet_name in excel_data.sheet_names:
                content += f"Sheet: {sheet_name}\n"
                sheet_data = excel_data.parse(sheet_name).head(10)  # 각 시트의 첫 10행 읽기
                content += sheet_data.to_string(index=False)
                content += "\n\n"

            self.file_content.setText(content)
        except Exception as e:
            self.file_content.setText(f"Error reading Excel file: {str(e)}")


# 프로그램 실행
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = FileHandlerApp()
    window.show()
    sys.exit(app.exec_())
반응형
반응형

앞으로 한 발, 또 한 발,
주문을 외우듯 신체가 움직이는
순간에만 몰입하면서 에너지를 쓰다 보면
하루 동안 피로와 불안한 마음도 평온해질 것이다.
단단하게 다져진 몸과 마음으로, 당신이 하고 싶고
좋아하는 모든 일들을 포기하지 않고
쭉 이어나가기를 응원한다.
"계속해보죠, 남는 게 체력이니까!"


- 정김경숙의 《계속 가봅시다 남는게 체력인데》 중에서 -


* 걷기 하나만 잘 반복해도
튼튼하고 건강한 몸을 만들 수 있습니다.
가장 중요한 것은 처음 결심과 꾸준함입니다.
처음 마음먹은 것을 꾸준히 계속하면 자신도
모르는 사이에 체력이 좋아집니다. 여기에
명상이 더해지면 금상첨화입니다. 걷는
순간순간에 몰입하는 것입니다.

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

때(時)와 정도(正道)  (0) 2025.01.23
외모와 목소리  (0) 2025.01.22
아파트 부부 싸움  (0) 2025.01.21
누구나 복잡하구나  (0) 2025.01.20
제 발등 찍기  (0) 2025.01.20
반응형

삼성페이, 등록된 카드 삭제 방법

 

1단계) 삼성월렛 실행 후 전체 > 결제 카드를 선택하세요.

2단계) 삭제할 카드 선택 > 더보기 > 카드 삭제 > 삭제를 선택하세요.

https://www.samsungsvc.co.kr/solution/37517

반응형
반응형

화석처럼
오래 사는 나무도 있지만,
사람이나 나무나 생을 다하는 때가 온다.
나무야 그저 자연에 순응해 쓰러지지만, 사람은
이겨내려 애쓰는 것이 다를 뿐이다. 그러나
이겨내는 일도 정도를 벗어나면 보기 흉하다.
내 것을 사수하겠다고 정도를 포기한 이들의
이야기가 온 나라를 지배하는 지금,
헌법재판소를 지키는 백송의
안부가 궁금하다.


- 김기화의 《눈부신 당신의 시간을 헤아리며》 중에서 -


* 모든 것에는
'때'와 '정도'가 있습니다.
생(生) 할 때가 있고 멸(滅) 할 때가 있습니다.
때를 알아 순응하는 것이 순천(順天)이고, 이를
역행하는 것이 역천(逆天)입니다. 자신이 지금 어느
때를 지나고 있는지를 깊이 살피고 헤아려 처신하되
정도(正道)를 걸어야 합니다. 자칫 때를 놓치거나
정도를 포기하면 부끄러움만이
뒤따를 뿐입니다.

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

순간 몰입  (0) 2025.01.24
외모와 목소리  (0) 2025.01.22
아파트 부부 싸움  (0) 2025.01.21
누구나 복잡하구나  (0) 2025.01.20
제 발등 찍기  (0) 2025.01.20
반응형

【LIVE】河口湖大石公園からの「富士山ライブカメラ」 "mount fuji live camera" from Lake Kawaguchiko Oishi Park (Japan)

 

https://www.youtube.com/watch?v=bdUbACCWmoY

반응형

+ Recent posts