2022년 4월 28일 목요일

Image to base64, base64 to image

PIL.UnidentifiedImageError: cannot identify image file


import base64

import io
from io import BytesIO
from PIL import Image

byteImgIO = io.BytesIO()
byteImg = Image.open('./images/img_small.png')
byteImg.save(byteImgIO, "PNG")
byteImgIO.seek(0)
byteImg = byteImgIO.read()
v2 = base64.b64encode(byteImg)
v3 = base64.b64decode(v2)
# i = Image.open(BytesIO(v3))
# i = i.convert('L')
i = BytesIO(v3)
i.seek(0)
i = Image.open(i)
i.save('./images/a.png')
print('finish')

Docker 에 postgres 설치

docker pull postgres

docker run -d -p 5432:5432 -e POSTGRES_PASSWORD="<mypwd>" --name PostgreSQL postgres

sudo docker exec --user="root" -it PostgreSQL "bash"

2022년 4월 26일 화요일

Python 으로 엑셀 셀 배경색 넣기.

color = 'ffffff'

bc = PatternFill(fgColor=Color(color, tint=0.5), bgColor=Color(color, tint=0.5), fill_type='gray125')

2022년 4월 25일 월요일

docker 로 kafka 설치, 실행

docker pull wurstmeister/kafka

docker pull wurstmeister/zookeeper


docker-compose.yml 생성

version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: build: . ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_CREATE_TOPICS: "test:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock


docker-compose.yml 파일이 있는 위치에서

docker-compose -f docker-compose.yml up -d


producer

max_request_size = 1048576

consumer

fetch_max_bytes = 52428800 max_partition_fetch_bytes: 1 * 1024 * 1024

이 파일은 파일 확인 절차를 통과하지 않았습니다.

빈 파일은 올라가지 않음.

vim /etc/php/7.4/apache2/php.ini

file_uploads = On

upload_max_filesize = 2048M


cd /var/www/html/mediawiki

sudo chown -R www-data:www-data images/

sudo chmod -R 755 images


vim LocalSettings.php

$wgFileBlacklist = [

  'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl',

];

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc',

    'xls', 'mpp', 'pdf', 'ppt', 'tiff', 'bmp', 'docx', 'xlsx',

    'pptx', 'ps', 'odt', 'ods', 'odp', 'odg', 'zip', 'gz'

);


$wgStrictFileExtensions = false;

$wgTrustedMediaFormats[] = 'application/zip';

$wgAllowJavaUploads = true;


cd images

sudo vim .htaccess

<IfModule rewrite_module>

        RewriteEngine On

        RewriteOptions inherit

        RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]

        RewriteRule . - [forbidden]

        # Fix for bug T64289

        Options +FollowSymLinks

</IfModule>

2022년 4월 18일 월요일

docker 로 django 서비스

  •  Dockerfile 파일 생성

FROM python:3.8.10

RUN apt -y update

WORKDIR /mysite

COPY . .

RUN pip install django==4.0.4

CMD ["python3", "manage.py", "runserver", "0:8000"]

EXPOSE 8000

 

  • docker build -t django-test .
  • docker run -p 8000:8000 -tid django-test

2022년 4월 13일 수요일

NetBeans 한글 출력

C:\Program Files\NetBeans-13\netbeans\etc 폴더에서

netbeans.conf 파일 수정

netbeans_default_options 가장 뒤에 추가

netbeans_default_options="............. -J-locale=UTF-8 -J-Dfile.encoding=UTF-8"



2022년 4월 12일 화요일

Python 에서 .ui 파일 불러오기 (PyQt5)

import sys

from PyQt5 import uic

from PyQt5.QtWidgets import QMainWindow, QApplication

form_class = uic.loadUiType('./window_main.ui')[0]



class MyWindow(QMainWindow, form_class):

    def __init__(self):

        super().__init__()

        self.setupUi(self)



if __name__ == "__main__":

    app = QApplication(sys.argv)

    myApp = MyWindow()

    myApp.show()

    app.exec_()


미디어위키(MediaWiki) 파일 업로드 설정

sudo apt install vim

  1. php 파일 업로드 설정 확인
    1. sudo vim /etc/php/7.4/apache2/php.ini
    2. file_uploads = On
    3. upload_max_filesize = 20M
  2. MediaWiki 파일 저장 폴더 소유자 & 권한 변경
    1. cd /var/www/html/mediawiki
    2. sudo chown -R www-data:www-data images/
    3. sudo chmod -R 755 images
  3. MediaWiki LocalSettings.php 설정
    1. vim LocalSettings.php
    2. $wgEnableUploads = true;
    3. $wgStrictFileExtensions = false;
      1. 블랙리스트에 등록된 확장자를 제외하고 허용
    4. 블랙리스트 등록
      • $wgFileBlacklist = [
          'exe', 'msi'
        ];
  4. apache2 재시작
    1. sudo service apache2 restart

 

Ubuntu 20.04에 미디어위키(mediawiki) 설치

  1. 시스템 업데이트 & Apache2, DB, PHP 설치
    1. sudo apt-get update && sudo apt-get upgrade
    2. sudo apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring
    3. sudo apt-get install php-apcu php-intl imagemagick inkscape php-gd php-cli php-curl php-bcmath git
  2. MediaWiki 저장 폴더 생성
    1. mkdir tmp
    2. cd tmp
  3. MediaWiki 다운로드
    1. wget https://releases.wikimedia.org/mediawiki/1.37/mediawiki-1.37.2.tar.gz
  4. 압축해제 & 웹 서버로 이동
    1. tar -xvzf mediawiki-*.tar.gz
    2. sudo ln -s ~/tmp/mediawiki-1.37.2 /var/www/html/mediawiki
      1. 링크를 만들지 않고 복사 또는 이동해도 됨.
  5. mysql 시작
    1. sudo service mysql restart
  6. mysql 설정
    1. sudo mysql -u root -p
    2. CREATE USER 'wiki_admin'@'localhost' IDENTIFIED BY 'asdf1234!@';
    3. CREATE DATABASE my_wiki;
    4. GRANT ALL ON my_wiki.* TO 'wiki_admin'@'localhost';
    5. quit;
  7. 서버 시작
    1. sudo service apache2 restart
  8. 설치
    1. http://localhost/mediawiki 접속
      1. set up the wiki 클릭
    2. 설치 중 DB 이름은 5. 에서 생성한 my_wiki
    3. 설치 중 DB 계정은 5. 에서 설정한 wiki_admin/asdf1234!@
    4. 설치 중 확장기능 모두 선택
    5. 설치가 완료되면 LocalSettings.php 파일은 다운받아서 MediaWiki 폴더로 저장
      1. /var/www/html/mediawiki/LocalSettings.php
      2. visual editor 설정
        1. wfLoadExtension( 'Parsoid', 'vendor/wikimedia/parsoid/extension.json' );
  9. 테스트
    1. /var/www/html/mediawiki

[python] subprocess

proc.py import asyncio from argparse import ArgumentParser from asyncio import sleep async def process_function(user, file_path):     if use...