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
반응형

'언어 > Python' 카테고리의 다른 글

파이썬 함수  (0) 2021.07.16
파이썬 조건문과 반복문  (0) 2021.07.09
파이썬 리스트와 딕셔너리  (0) 2021.07.07
파이썬 문자열 다루기  (0) 2021.07.06
파이썬 변수 선언과 자료형  (0) 2021.07.02
728x90
반응형

함수의 기본

def sum(a,b):
    return a+b

result = sum(1,2)
print(result) #3

입력값과 리턴값이 있는 함수 형태입니다.


def bus_rate(age):
        if age > 65:
            print("무료로 이용하세요")
        elif age > 20:
            print("성인입니다.")
        else:
            print("청소년입니다")

bus_rate(27) #성인입니다
bus_rate(10) #청소년입니다
bus_rate(72) #무료로 이용하세요

입력값은 있지만 리턴값은 없는 함수 형태입니다.





퀴즈) 주민번호를 입력받았을때 여성인지 남성인지 구해주는 함수를 만들자

def check_gender(pin):
    if int(pin.split('-')[1][0])%2==1:
        print('남성')
    else:
        print('여성')

my_pin = '200101-2012345'
check_gender(my_pin) #여성

split은 정말 자주쓰는 함수입니다. 잘 기억해두시면 아주 편리하게 코딩할 수 있습니다.

728x90
반응형
728x90
반응형

- 조건문

money = 3000

if money > 3800:
	print('택시를 타자!')
elif money > 1200:
	print('버스를 타자!')
else:
	print('걸어가자...')

 

 

- 반복문

for i in range(5):
	print(i) # 0 1 2 3 4

 

 

 

- 리스트와 반복문

fruits = ['사과', '배', '감', '귤']

for i in fruits:
    print(i) # 리스트 요소가 하나씩 출력된다

 

 

- 딕셔너리와 반복문

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
    print(person['name'], person['age'], end=' ') # bob 20 carry 38 ...

 

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for person in people:
	if person['age']>20: #나이가 20보다 많은 사람만 출력
    	print(person['name'], person['age'], end=' ') # carry 38 ...

 

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

for i, person in enumerate(people):
    print(i, person['name'], person['age']) # 0 bob 20 1 carry 38 ... 순번을 붙임
    if i > 3:
    	break #i가 3보다 커지면 종료된다

 

 

 

728x90
반응형

'언어 > Python' 카테고리의 다른 글

pyzbar 오류 해결 방법 / libzbar-64.dll 에러  (0) 2021.08.23
파이썬 함수  (0) 2021.07.16
파이썬 리스트와 딕셔너리  (0) 2021.07.07
파이썬 문자열 다루기  (0) 2021.07.06
파이썬 변수 선언과 자료형  (0) 2021.07.02
728x90
반응형

1. 리스트

a = ['사과', '배', '감']

print(a) # 위에꺼 그대로 나옴

 

 

- 리스트 안에 리스트

a = ['사과', '배', ['감', '수박']]

print(a[2][1]) # 감

 

 

- 리스트 요소 추가하기

a = [1,2,3]

a.append(4)

print(a) # [1,2,3,4]

 

 

- 길이 구하기, 마지막 요소 구하기

a = [1,2,3,100]

print(len(a)) # 4
print(a[-1]) # 100

 

 

- 오름차순 내림차순 정렬

a = [1,3,5,2,4,7]

a.sort()
print(a) #[1,2,3,4,5,7]

a.sort(reverse=True)
print(a) #[7,5,4,3,2,1]

 

 

- 리스트에 원하는 요소가 있는지 확인

a = [1,5,6,3,2]

result = (5 in a)
print(result) #True

result = (99 in a)
print(result) #Flase

 

 

 

 

2. 딕셔너리

a = {'name':'bob', 'age':27, 'friend':['영희','철수']}

result = a['name']
print(result) # bob

result = a['friend'][1]
print(result) # 철수

 

 

- 값 넣기

a = {'name':'bob', 'age':27, 'friend':['영희','철수']}

a['height'] = 180
print(a) # height 추가되어서 나옴

 

 

- 값이 있는지 확인

a = {'name':'bob', 'age':27, 'friend':['영희','철수']}

print('height' in a) #False

 

 

- 리스트 안에 딕셔너리

people = [{'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}]

# people[0]['name']의 값은? 'bob'
# people[1]['name']의 값은? 'carry'

person = {'name': 'john', 'age': 7}
people.append(person)

# people의 값은? [{'name':'bob','age':20}, {'name':'carry','age':38}, {'name':'john','age':7}]
# people[2]['name']의 값은? 'john'

 

 

- 딕셔너리 안에 딕셔너리

people = [
    {'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
    {'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
    {'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
    {'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
]

print(people[2]['score']['science']) #90

 

728x90
반응형

'언어 > Python' 카테고리의 다른 글

파이썬 함수  (0) 2021.07.16
파이썬 조건문과 반복문  (0) 2021.07.09
파이썬 문자열 다루기  (0) 2021.07.06
파이썬 변수 선언과 자료형  (0) 2021.07.02
파이썬 설치하는 방법  (0) 2021.05.17
728x90
반응형

1. 문자열 연결

first_name = 'O'
last_name = 'hyeji'

print(first_name + last_name)

: 주의사항으로는 ' '와 " "는 합쳐지지 않고, 100과 ' ' 등 정수와 문자열도 합쳐지지 않습니다.

 

 

 

 

 

2. 문자열과 숫자의 연결

a = '100'
b = str(200)

print(a + b)

: 연결하고 싶다면 숫자를 문자열로 형변환 하여 연결하면 됩니다.

 

 

 

3. 문자열 길이, len( )

text = 'fjdkslvn'

print(len(text)) #8

 

 

 

 

4. 문자열 요소 뽑기, [ : ]

text = 'fjdkslvn'

result = text[:3] #앞에 3개만 출력

print(result)

 

text = 'fjdkslvn'

result = text[3:] #앞에 3개빼고 출력

print(result)

 

 

text = 'fjdkslvn'

result = text[3:6]

print(result) # ksl이 나옵니다. 앞에 3개 빼고 6까지 출력

 

 

 

 

 

 

5. 문자열 자르기, split( )

text = 'fjdkslvn9@gmail.com'

result = text.split('@')
print(result) # [fjdkslvn9, gmail.com] 으로 @ 좌우로 쪼개짐

 

 

 

text = 'fjdkslvn9@gmail.com'

result = text.split('@')[1] # 0번째는 fjdkslvn9고 1번째는 @ 뒷쪽 문자
print(result) # gmail.com

 

 

 

text = 'fjdkslvn9@gmail.com'

result = text.split('@')[1].split('.')[0]
print(result) # gmail

활용) 전화번호의 지역번호만 추출하기

더보기
text = '02-123-4567'

result = text.split('-')[0]
print(result) # -으로 구별된 숫자들 중 맨 앞에있는 것인 지역번호를 출력

 

728x90
반응형
728x90
반응형

1. 숫자의 계산

a = 10
b = 2

print(a+b) #12
print(a-b) #8
print(a*b) #20
print(a/b) #5.0
print(a**b) #100
print(a%b) #0

: 12

   8

  20

 5.0

100

  0

 

 

 

2. 문자의 저장

a = 'fjdkslvn'
b = '의 공부방'

print(a+b)

: fjdkslvn의 공부방

 

 

 

 

3. bool 연산

a = True

print(a)

: True

 

 

a = (3 < 2)

print(a)

: False

728x90
반응형

+ Recent posts