python3, windows 를 기준으로 작성했습니다.

 

python 으로 작성한 코드를 C# 에서 사용해야 할 일이 있어서 컨버팅 작업이 필요했다.

python 코드를 바로 C# 에서 사용하는 방법도 있었는데 코드 보안을 위해 pyd (dll)로 컨버팅 하기로 했다.

 

$ pip install Cython

일단 Cython이 없다면 설치해주고,

 

# sum.pyx

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

파이썬 코드를 작성하는데 확장자를 *.pyx 로 해준다.

 

 

# setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [Extension("sumdll", ["sum.pyx"])] )

 

setup.py 의 코드는 이렇게 작성하고,

 

$ python .\setup.py build_ext --inplace

 

위의 커맨드로 setup.py 를 실행시킨다.

 

결과물

c, pyd 로 컨버팅된 파일이다. pyd 파일은 파이썬, 운영체제 버전에 따라 뒤에 붙는 이름이 조금 달라진다.

python3 를 기준으로 작성했습니다.

 

파이썬 앱을 실행할 때 Windows 에서 관리자 권한으로 실행했는지 확인하는 방법이다.

 

 

pip 로 pywin32 를 설치하자

pip install pywin32

 

 

그다음엔 파이썬 파일을 작성하자

# admin.py

from win32com.shell import shell
if shell.IsUserAnAdmin() :
    print("관리자입니다.")
else :
    print("관리자가 아닙니다.")

admin.py

 

위 사진처럼 관리자 권한으로 실행했는지 아닌지 확인할 수 있다.

 

python3 기준으로 작성하였습니다.

 

import urllib.request

opener=urllib.request.build_opener()
opener.addheaders=[(
	'User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) 
	AppleWebKit/537.36 (KHTML, like Gecko) 
	Chrome/36.0.1941.0 Safari/537.36')]

urllib.request.install_opener(opener)

url = 'test.jpg'
urllib.request.urlretrieve(url , 'file.jpg')

 

import cv2

fourcc = cv2.VideoWriter_fourcc(*'avc1')
out = cv2.VideoWriter('test.mp4', fourcc , 60 , (640,640))

# Failed to load OpenH264 library: openh264-1.8.0-win64.dll
# Please check environment and/or download library: https://github.com/cisco/openh264/releases

python3 windows 에서 

fourcc = cv2.VideoWriter_fourcc(*'avc1') 를 하려는 도중

Failed to load OpenH264 library: openh264-1.8.0-win64.dll

에러가 떴다.. ubuntu 에서는 문제가 없었는데 윈도우에서 빌드하니 라이브러리가 없는 모양이다.

 

https://github.com/cisco/openh264/releases  여기 링크로 가서 에러뜬 버전을 찾아서 

 

win64.dll 로 다운받자

C:\Windows\System32 에 넣어주면 된다.

'Python > OpenCV' 카테고리의 다른 글

[OpenCV] RTSP 주소 스트리밍 하기  (8) 2020.03.31

파이썬3 기준으로 작성했습니다.

 

파이썬으로 파일 이동, 복사를 해보자.

linux 에서는 mv, cp 로 이동, 복사를 하는데

# ex.py
os.system('cp file1.avi file2.avi')

나는 이런식으로 사용했었다. 그런데 문제는 이 코드를 윈도우에서 실행 했을 때 mv, cp 등의 명령어가 없어서

에러가 났다. 그때 파이썬의 기본 모듈인 shutil 을 사용하면 된다.

 

# ex.py
import shutil

from_ = './mydir/myfile.txt'
to_ = './yourdir'

shutil.move(from_, to_)

# shutil.copy(from_, to_) # 복사도 동일하다

 

ex.py 를 실행하면 mydir 에 있는 myfile.txt 파일을 yourdir 로 이동시킨다.

 

+ Recent posts