레이블이 파이썬인 게시물을 표시합니다. 모든 게시물 표시
레이블이 파이썬인 게시물을 표시합니다. 모든 게시물 표시

2023년 11월 2일 목요일

파이썬 pyinstaller 에러

Python에서 exe 실행화일을 만들려면

pyinstaller 을 설치 해야 한다.


pip install PyInstaller

PyInstaller을 설치한지 오래되었다면 업그레이드 한다.

pip install --upgrade pyinstaller


실행 화일을 만든다.

pyinstaller hello.py



pyinstaller : 'pyinstaller' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.

이런 에러가 발생할 수 있다.

그렇다면

python -m PyInstaller hello.py

를 실행하면 잘 작동 할 수도 있다.

2022년 12월 26일 월요일

파이참(Pycham) 32bit 파이썬 연결 설정

키움api를 이용한 자동매매 프로그램을 만들때

파이썬을 32bit로 설정해야 한다.


파이썬 32 bit 로 변경한 파이썬을

파이참에 연결하는 법이다.

파이썬 32bit 설정법은 아래 링크를 참조하길 바란다.

https://black-white-all.blogspot.com/2020/09/32bit.html


파이참 오른쪽 위에 있는 설정 Setting을 클릭한다.


메뉴에서

Python Interpreter 를 선택하고

Add Interpreter 를 클릭한다.


System Interpreter 를 선택하고

32bit 로 환경 설정한 phthon을 선택한다.



2020년 9월 2일 수요일

아나콘다 32bit 설정 키움api 설정

64bit 파이썬을 32bit로 가상환경을 만드는 방법이다.

아나콘다를 설치하고

명령프롬프트 command창에서
콘다 버전을 확인한다.
conda --version

파이썬 버전을 확인한다.
python --version

32bit 로 환경을 설정한다.
set CONDA_FORCE_32BIT=1

32bit 가상환경을 만든다.
내 컴퓨터의 파이썬은 버전이 3.6.5 이다.
conda create -n 가상환경명 python=3.6.5 anaconda



2020년 7월 10일 금요일

[파이썬] panda 판다 를 이용한 엑셀 중복 제거 저장

파이썬에서
판다 panda 를 이용해서
엑셀의 특정행에 중복되어 있는 데이터를
제거하고 다시 저장하는 프로세스를 진행한다.

먼저 판다를 쓸때에는 엑셀의 첫행을 인덱스로 쓰기 때문에
인덱스로 쓸 내용을 적어 주어야 한다.

나는 mail과 name을 사용하였다.


판다를 임포트한다.

import pandas as pd

판다를 이용해 엑셀파일을 열어 저장한다.

apart = pd.read_excel("test1sample.xlsx", sheet_name='Sheet1')

이때 xlrd에러가 발생할 수 있다. 
에러해결은 아래 링크를 참조하자

https://black-white-all.blogspot.com/2020/07/python.html

mail이라는 컬럼에 있는 중복부분을 빼준다.

df = apart.drop_duplicates(["mail"], keep = "first")

df = apart.drop_duplicates(["mail"], keep = "last")

df = apart.drop_duplicates(["mail"])

중복부분을 어떻게 할것인가의 선택이다.
first는 첫부분은 남겨놓는다.
last는 마지막 부분을 남겨놓는다.
keep 조건이 없으면 중복부분은 모두 삭제이다.

df.to_excel('result.xlsx', sheet_name='Sheet1')


result.xlsx파일에 작업한 결과물을 저장한다.
openpyxl 이 install되어 있어야 한다.


이때 박스의 인덱스 부분을 없애고 싶다면 index를 설정해주면 된다.

df.to_excel('result.xlsx', sheet_name = 'Sheet1', index = False)

[파이썬] Python 엑셀파일 읽기 에러

파이썬 Python에서 panda를 이용한
엑셀 파일읽기를 할때

apart = pd.read_excel("test.xlsx", sheet_name='imsanbu')


ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.

라는 에러가 발생했다.

이 에러는 xlrd가 설치되어있지 않기 때문에 발생하는 것이다.

pip install xlrd

로 xlrd를 설치한다.

2020년 7월 9일 목요일

[파이썬] 파일 읽기 에러

파이썬을 이용한 읽기를 진행하고 있다.
여기서 아래와 같은 에러코드를 만났다.

UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 35: illegal multibyte sequence

내용적으로 보았을 때
cp949 코덱
UnicodeDecode 를 할수 없다는 이야기다.

기본적으로 파이썬은
ANSI를 사용하는데
'UTF-8' / 'UTF-16' / 'EUC-KR' 를 기본으로 사용하지 않는다.

따라서 화일을 사용할때
정의해주어야 한다.

file = open('email.html', 'r')


을 으로

file = open('email.html', 'r', encoding='UTF-8')

정의해주어야 한다.

2020년 7월 8일 수요일

파이썬 구글 이메일 엑세스 문제

파이썬에서 구글 이메일을 사용할 때
엑세스의 에러가 발생할 수 있다.

raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8

에러는 이런 메세지가 나오리라고 예상된다.

무슨 뜻인가 하면 SMTP 메일서버를 이용하는 권한의
에러가 발생했다는 말이다.

이 문제는 아이디와 비밀번호가 맞지 않거나
해당 아이디의 보안을 낮추어 설정하지 않아서 이다.

보통은 낮은 보안이 권장 사항이 아니라서
이런 에러가 발생할 수 있다.


설정의 보안에서
하단에 있는
보안 수준이 낮은 앱의 액세스를
사용으로 설정한다.

2020년 7월 3일 금요일

파이썬(Python) 셀레늄(selenium) 여러 정보가져오기

파이썬(Python) 
셀레늄(selenium)에서
 
하나의 정보를 가져오려면

find_element_by_class_name
find_element_by_id_name
find_element_by_tag_name



를 쓰면 되지만

복수의 여러개를 가져올때는

find_elements_by_id_name
find_elements_by_tag_name


find_elements_by_class_name

elements를 써야 한다.

파이썬 드롭다운 선택 selenium , 여러줄 주석처리방법(bnw)


파이썬(Python)에서
selenium(셀레니움)을 사용하여
드롭다운 메뉴를 선택하는 방법은
아래와 같이 하면 된다.

주의할 점은 프레임(frame)을 사용하는 웹사이트에서는
프레임 안으로 옮기는 과정이 필요하다.
그렇지 않으면
find_element_by_xpath 로
찾지 못할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
"""
    selenium에서
    드롭다운 메뉴를 선택하는법
    먼저
    Select을 임포트해주고
"""
from selenium.webdriver.support.select import Select
#   웹페이지가 ifram으로 나누어져 있다면
driver.switch_to_frame("cafe_main")
'''
     으로 프레임으로 바꾼다.
     그다음에
     가져오려는 xpath를 선택한다.
'''
select = Select(driver.find_element_by_xpath('//*[@id="listSizeSelectDiv"]/a'))
'''
    찾은 드롭다운 메뉴의
    Value부분을 찾아 넣는다.
'''
itemString = "banana"
select.select_by_value(itemString)
cs
참고로
여러줄을 주석할 때는 위와 같이
"""나 '''을 사용하면 된다.

한줄은 #로 주석처리 할 수 있다.