728x90
반응형

 

qr코드를 인식하기 위해 pyzbar를 설치하고 실행했는데 자꾸 오류가 납니다.

 

설치된 곳에 들어갔지만 libzbar-64.dll도 잘 들어있습니다.

 

 

- 오류 - 

더보기

Traceback (most recent call last):
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 58, in load
    dependencies, libzbar = load_objects(Path(''))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 50, in load_objects
    deps = [
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 51, in <listcomp>
    cdll.LoadLibrary(str(directory.joinpath(dep)))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependencies). Try using the full path with constructor syntax.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\한이음\QR\aws rds와 바코드인식 연동.py", line 3, in <module>
    from pyzbar import pyzbar
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\pyzbar.py", line 7, in <module>
    from .wrapper import (
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\wrapper.py", line 139, in <module>
    zbar_version = zbar_function(
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\wrapper.py", line 136, in zbar_function
    return prototype((fname, load_libzbar()))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\wrapper.py", line 115, in load_libzbar
    libzbar, dependencies = zbar_library.load()
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 60, in load
    dependencies, libzbar = load_objects(Path(__file__).parent)
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\zbar_library.py", line 54, in load_objects
    libzbar = cdll.LoadLibrary(str(directory.joinpath(fname)))
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\ctypes\__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\fjdks\AppData\Local\Programs\Python\Python39\lib\site-packages\pyzbar\libzbar-64.dll' (or one of its dependencies). Try using the full path with constructor syntax.

 

 

 

집에있는 오래된 PC에서는 문제없이 실행되는데 새로운 노트북에서만 자꾸 실행이 되지 않았습니다. PC의 파이썬 자체를 가져와서 노트북에서 실행하는 것도 실패했습니다. 그러던 도중 해결 방법을 찾았습니다.

 

 

 

 

해결 방법

Download Visual Studio 2013용 Visual C++ 재배포 가능 패키지 from Official Microsoft Download Center

 

Download Visual Studio 2013용 Visual C++ 재배포 가능 패키지 from Official Microsoft Download Center

중요! 아래에서 언어를 선택하면 전체 페이지 내용이 해당 언어로 신속하게 변경됩니다. 독일어러시아어스페인어영어이탈리아어일본어중국어(간체)중국어(번체)프랑스어한국어 다운로드 Visual

www.microsoft.com

 

Visual C++을 다운로드 받으시면 됩니다. 저는 2013버전을 받고 해결되었고 2019 버전은 효과가 없었습니다. 2015-2019 라고 써있던 버전인데도 안됐으니까.. 2013을 다운받는걸 추천드립니다.

 

 

오래된 PC에서는 여러버전의 C++이 설치되어 있었는데 새로 산 노트북은 2013을 설치하기 전에 C++ 프로그램이 전혀 없었습니다. pyzbar도 C++을 사용하네요....

728x90
반응형
728x90
반응형

fjdkslvn@gmail.com 문자열을 자른 모습

 


public class Split {

	public static void main(String[] args) {
		String str ="fjdkslvn@gmail.com";
		
		// 직접 가져오기
		System.out.println(str.split("@")[0]);
		System.out.println(str.split("@")[1]);
		
		String[] mail = str.split("@"); // 자른 문자열을 배열에 저장
		System.out.println(mail[0]);
		System.out.println(mail[1]);

	}

}

정말 간단합니다. split( ) 메서드를 통해 문자열을 자를 수 있습니다.

 

잘린 문자열은 문자열 배열에 넣어 활용할 수 있고 직접 참조도 가능합니다.

 

문자열 자르기는 파이썬과 동일하기 때문에 쉽게 이해할 수 있었습니다.

728x90
반응형
728x90
반응형
FileInputStream의 기초

 

hi, my name is fjdkslvn!

import java.io.FileInputStream;

public class Fjdkslvn {

	public static void main(String[] args) throws Exception {
		
		FileInputStream file = new FileInputStream("C:\\Users\\fjdks\\Desktop\\fjdkslvn.txt"); // \를 표시하고싶다면 두번쓰자

		int num;

		num=file.read();
		System.out.print((char)num);
		
		num=file.read();
		System.out.print((char)num);
		
		num=file.read();
		System.out.print((char)num);
		
		num=file.read();
		System.out.print((char)num);
		
	}

}

FileInputStream을 쓰기위해 import를 해준다. (throws Exception을 해줘야 오류를 무시하고 실행가능)

 

읽어오길 원하는 파일의 위치를 연결시키고 read() 메서드를 통해 int 값으로 하나씩 받아온다.

 

file.read()를 사용할 때 마다 특별한 증가값을 작성하지 않아도 자동으로 다음 문자를 읽어온다.

 

숫자로 읽은 값을 char를 사용하여 문자로 변환하여 출력한다.

 

4번을 반복하여 출력했더니 공백을 포함하여 'hi, '가 출력되었다.

 

 

 

 

사용 방법

 

import java.io.FileInputStream;

public class Fjdkslvn {

	public static void main(String[] args) throws Exception {
		
		FileInputStream file = new FileInputStream("C:\\Users\\fjdks\\Desktop\\fjdkslvn.txt"); // \를 표시하고싶다면 두번쓰자

		int num;
		String str = "";
		
		while((num=file.read()) != -1) {
			str += (char)num;
		}
		
		System.out.println(str);
		
	}

}

while문을 사용하여 메모장의 마지막 문자까지 받아오도록 한다.

 

int로 받은 문자를 char형으로 변환한 후에 문자열에 이어붙인다.

728x90
반응형
728x90
반응형

1. 이클립스 하단에 Tomcat Server를 클릭한다.

 

 

 

 

 

 

 

 

 

2. HTTP/1.1의 포트번호를 원하는 것으로 변경한다.

 

8080으로 되어있는 것을 80으로 변경하였다

728x90
반응형
728x90
반응형

AWS RDS(DB) MYSQL 워크벤치 연동 / MariaDB :: 러아니푸의 공부방 (tistory.com)

 

AWS RDS(DB) MYSQL 워크벤치 연동 / MariaDB

MySQL :: Download MySQL Workbench MySQL :: Download MySQL Workbench Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora m..

fjdkslvn.tistory.com

코드를 활용할때 필요한 엔드포인트 , 마스터 사용자 이름, 비밀번호 등의 정보를 찾고싶다면 상단 링크에 들어가서 접은 글을 확인하시면 됩니다. 만든 db는 rds를 만들때 직접 따로 입력했거나 mysql 워크벤치에서 생성해줘야합니다. 테이블은 이미 생성한 상태로 생각하고 만든 코드입니다. 테이블이 없다면 sql문을 입력하여 생성하거나, mysql 워크벤치를 사용하여 생성해줍시다.

 

 

 

 

 

1. 입력한 값을 테이블에 넣는 코드

import pymysql

conn=None
cur=None

#mariaDB와 연동하는 부분
conn = pymysql.connect(host='rds 엔드포인트', user='마스터 사용자 이름', password='rds 비밀번호', db='만든 db',charset='utf8', port=3306)
cur = conn.cursor()

data1= input()
data2= input()

cur.execute("INSERT INTO 테이블명 VALUES('"+data1+"','"+data2+"')")

conn.close() # db접속 종료

 

 

 

 

2. 테이블에 저장된 레코드를 받아와서 읽는 코드

import pymysql

conn=None
cur=None

#mariaDB와 연동하는 부분
conn = pymysql.connect(host='rds 엔드포인트', user='마스터 사용자 이름', password='rds 비밀번호', db='만든 db',charset='utf8', port=3306)
cur = conn.cursor()

cur.execute("SELECT * FROM 테이블 명")

while(True):
    row = cur.fetchone() #row에 커서(테이블 셀렉트)를 한줄 입력하고 다음줄로 넘어감
    if row == None:
        break
    print(row[0], row[1])

conn.close() # db접속 종료

 

728x90
반응형
728x90
반응형

1. Preferences -> Server -> Runtime Environments로 들어가면 서버가 있습니다. 지우고싶은 서버를 클릭한 후 remove를 눌러 지워주세요.

 

 

2. Project Explorer에서도 지워줍니다.

728x90
반응형

+ Recent posts