프로그래밍/Python
-
[Python] PyInstaller로 컴파일한 코드를 decompyle3로 디컴파일 하기프로그래밍/Python 2024. 3. 4. 10:34
PyInstaller PyInstaller는 Python 애플리케이션과 모든 종속 요소를 단일 패키지로 묶는 소프트웨어이다. 이를 통해 프로그램 사용자는 파이썬 인터프리터나 모듈을 설치하지 않고도 프로그램을 실행할 수 있다. PyInstaller는 Python 3.8 이상을 지원하며 numpy, matplotlib, PyQt, wxPython 등과 같은 많은 주요 Python 라이브러리들을 패키징한다. ※ 해당 프로그램이 무엇으로 패킹 되었는지는 Exeinfo PE를 사용하여 확인한다. 언패킹 python-exe-unpacker 스크립트를 사용하여 PyInstaller로 묶인 파일들을 언패킹해준다. git clone https://github.com/countercept/python-exe-unpacke..
-
[Crawling] 스타벅스 매장 위치 데이터 크롤링하기프로그래밍/Python 2023. 1. 26. 17:12
Python으로 크롤링 하는 법 파이썬으로 크롤링하는 방법은 크게 selenium을 쓰는 방법과 requests를 사용해서 하는 방법으로 나뉜다. 평상시에 윈도우가 아닌 환경에서 Jupyter를 사용하고 requests를 사용하여 크롤링하는 것이 속도 측면에서 더 나아서 크롤링할 때는 requests를 사용한다. 검색해보면 BeautifulSoup와 selenium을 사용하여 크롤링하는 방법 위주로 설명된 블로그들이 많아, requests를 이용해서 스타벅스의 매장 위치를 크롤링 하는 방법을 소개하고자 한다. 소스 코드 import math import random import requests import pandas as pd 스타벅스 홈페이지에서 매장을 불러오는 구조를 보면 randomString을 ..
-
[Pandas] matplotlib 한글 폰트 설치하기프로그래밍/Python 2023. 1. 26. 16:22
https://syudal.tistory.com/entry/Jupyter-pandas-matplotlib-한글-폰트-설치하기 [Jupyter] pandas matplotlib 한글 폰트 설치하기 pandas를 통해 한글이 포함된 csv를 불러오는 방법은 아래와 같다. import pandas as pd df = pd.read_csv('./data.csv', sep=',', encoding='utf-8') df.head() 인코딩의 문제가 없으므로, 해당 파일의 머리 부분을 잘 불러 syudal.tistory.com 이전에 위와 같이 포스팅 했던 것을 보면 pandas에 matplotlib 한글 폰트 설치하는 방법은 다음과 같다. sudo apt-get install fonts-nanum* 하지만 Jupy..
-
docker ubuntu 이미지에 Virtualenv 설치하기프로그래밍/Python 2021. 7. 12. 17:05
virtualenv 는 격리된 파이썬 환경을 만들기 위한 도구로 다른 프로젝트에는 영향을 끼치지 않는다. #apt-get install python3-virtualenv #virtualenv 폴더명 위와 같은 명령어로 virtualenv를 설치한다. 만약 아래와 같이 ModuleNotFoundError가 출력된다면 virtualenv가 꼬여있다는 뜻이므로, 다음과 같은 명령어로 삭제후 다시 실행한다. No module named 'virtualenv.seed.via_app_data' #pip3 uninstall virtualenv 이상이 없다면 다음과 같이 출력된다. 이후 source 명령어를 통해 해당 폴더로 진입해야 하는데, docker ubuntu 이미지의 쉘은 기본적으로 /bin/sh이다. /bi..
-
[Flask] 콘솔 종료해도 백그라운드에서 실행프로그래밍/Python 2021. 6. 7. 22:04
Flask의 경우, 콘솔이나 ssh를 종료하면 flask또한 같이 종료된다. 해결하기 위한 방법은 아래와 같다. nohup python3 -u flask_app.py & nohup은 터미널이 종료되어도 표준 출력인 콘솔 출력은 nohup.out 파일에 계속해서 기록된다. 백그라운드로 실행된 프로세스를 종료하기 위해서는 ps명령으로 pid를 확인한 후, kill하면 된다. ps -ef | grep [프로세스명] # 혹은 ps -aux kill -9 [PID]
-
[Django] DisallowedHost 오류 Invalid HTTP_HOST프로그래밍/Python 2021. 6. 7. 21:44
DisallowedHost DisallowedHost 오류는 Django 웹 프레임워크에서 발생하는 일반적인 오류 중 하나이다. 이 오류는 보안상의 이유로 Django 애플리케이션이 허용되지 않은 호스트에서 요청을 받았을 때 발생한다. 문제 상황 django에 도메인을 연결해서 외부 테스트를 하려고 하면, DisallowedHost 라는 메시지가 뜨면서 연결이 되지 않는다. 이는, 디버깅 모드에서 ALLOWED_HOSTS 변수가 빈 리스트일 경우 ['localhost', '127.0.0.1', '[::1]'] 의미가 되어 로컬 호스트에서만 접속이 가능하다. 디버깅 모드를 해제하면 일체 접속이 허용되지 않고 명시적으로 지정한 호스트에만 접속할 수 있다. 수정하기 위해서는 settings.py를 수정하여 A..
-
[Jupyter] pandas matplotlib 한글 폰트 설치하기프로그래밍/Python 2021. 5. 22. 15:09
pandas를 통해 한글이 포함된 csv를 불러오는 방법은 아래와 같다. import pandas as pd df = pd.read_csv('./data.csv', sep=',', encoding='utf-8') df.head() 인코딩의 문제가 없으므로, 해당 파일의 머리 부분을 잘 불러온다. 하지만, 이를 plot()함수를 이용하여 변환시키면 아래와 같이 인코딩이 깨져 네모로 표현된다. 기본적으로 Ubuntu에는 나눔글꼴이 설치되어 나오나, JupyterHub Docker Image에는 나눔글꼴이 설치되어 있지 않은 우분투 기반 Image이므로, 다음과 같은 명령어를 쉘에 입력하여 나눔글꼴을 설치한다. sudo apt-get install fonts-nanum* 나눔글꼴을 설치하였다면, Jupyter..