Programming/python
-
Popen 을 사용해서 하위 프로세스를 생성하는 구조인데 단순 데이터만 주고 받는 것을 상정하다가 사전 구조인 dictionary 데이터를 주고 받으려니 삽질을 길게 하게 되네요.. from subprocess import Popen, PIPE import json ...(중략)... for proc in self.list: proc = Popen(['python3', proc.name], stdin=PIPE, stdout=PIPE) ...(중략)... for proc in self.list: proc.stdin.write('hi kids\r\n'.encode()) proc.stdin.flush() 원래는 이런 구조였습니다. 하지만 write 하는 곳에서 dict 형태의 데이터를 넘겨야 할 필요가 생겼을..
[python] Popen 을 통해 dict 주고 받기Popen 을 사용해서 하위 프로세스를 생성하는 구조인데 단순 데이터만 주고 받는 것을 상정하다가 사전 구조인 dictionary 데이터를 주고 받으려니 삽질을 길게 하게 되네요.. from subprocess import Popen, PIPE import json ...(중략)... for proc in self.list: proc = Popen(['python3', proc.name], stdin=PIPE, stdout=PIPE) ...(중략)... for proc in self.list: proc.stdin.write('hi kids\r\n'.encode()) proc.stdin.flush() 원래는 이런 구조였습니다. 하지만 write 하는 곳에서 dict 형태의 데이터를 넘겨야 할 필요가 생겼을..
2020.08.12 -
실행 환경Windows 10 python 3.8.3openwrt 18.06 python 3.8.3ubuntu 20.04 python 3.8.2 os 별 실행 결과os.nameimport os print(os.name)Windows 10ntopenwrt 18.06, ubuntu 20.04posixsys.platformimport sys print(sys.platform)Windows 10win32openwrt 18.06, ubuntu 20.04linuxplatform.system()import platform print(platform.system())Windows 10Windowsopenwrt 18.06, ubuntu 20.04Linuxplatform.uname()import platform print(..
[python] os 종류 확인하기실행 환경Windows 10 python 3.8.3openwrt 18.06 python 3.8.3ubuntu 20.04 python 3.8.2 os 별 실행 결과os.nameimport os print(os.name)Windows 10ntopenwrt 18.06, ubuntu 20.04posixsys.platformimport sys print(sys.platform)Windows 10win32openwrt 18.06, ubuntu 20.04linuxplatform.system()import platform print(platform.system())Windows 10Windowsopenwrt 18.06, ubuntu 20.04Linuxplatform.uname()import platform print(..
2020.08.11 -
importlib.lib.find_spec() 을 사용해서 지정된 이름의 파이썬 모듈이 존재하는지 확인할 수 있습니다.def isPythonModuleInstalled(name:str) -> bool: import importlib.util spec = importlib.util.find_spec(name) if spec is None: return False else: return True다음과 같이 쓰면 False 가 반환되야 합니다. 파이썬 모듈로 vim은 없으니깐요print(isPythonModuleInstalled('vim'))더 자세한 방법은 이 글을 참고하시기 바랍니다.
[python] 설치된 패키지 확인importlib.lib.find_spec() 을 사용해서 지정된 이름의 파이썬 모듈이 존재하는지 확인할 수 있습니다.def isPythonModuleInstalled(name:str) -> bool: import importlib.util spec = importlib.util.find_spec(name) if spec is None: return False else: return True다음과 같이 쓰면 False 가 반환되야 합니다. 파이썬 모듈로 vim은 없으니깐요print(isPythonModuleInstalled('vim'))더 자세한 방법은 이 글을 참고하시기 바랍니다.
2020.07.29 -
요새는 파이썬을 만지고 있습니다.초짜이다 보니 삽질하면서 적응해가고 있는데 내가 만든 모듈을 불러들여야 하는데 안불러지는 경우가 발생했습니다.대략 다음과 같은 폴더 구조입니다. aa.py 에서 bb.py 가 필요한데.. from dirB import bb.py 하니까 없는 모듈이라고 뜹니다..찾아보니 파이썬의 from, import 는 현재 위치 기준 상대경로로 인식된다고 합니다. 그래서 sys.path 에 절대경로 값을 추가해 준 다음 import 를 해야 하는 상황입니다.답만 나열하자면 aa.py 에서 bb.py 가 필요한 시점에 다음과 같이 작성했습니다.import os, sys# 프로젝트 root\dirB를 import 참조 경로에 추가sys.path.append( os.path.join(os.p..
[python] 서로 다른 경로에 있는 모듈 import 하기요새는 파이썬을 만지고 있습니다.초짜이다 보니 삽질하면서 적응해가고 있는데 내가 만든 모듈을 불러들여야 하는데 안불러지는 경우가 발생했습니다.대략 다음과 같은 폴더 구조입니다. aa.py 에서 bb.py 가 필요한데.. from dirB import bb.py 하니까 없는 모듈이라고 뜹니다..찾아보니 파이썬의 from, import 는 현재 위치 기준 상대경로로 인식된다고 합니다. 그래서 sys.path 에 절대경로 값을 추가해 준 다음 import 를 해야 하는 상황입니다.답만 나열하자면 aa.py 에서 bb.py 가 필요한 시점에 다음과 같이 작성했습니다.import os, sys# 프로젝트 root\dirB를 import 참조 경로에 추가sys.path.append( os.path.join(os.p..
2020.07.22 -
ubus-listen.py import ubus ubus.connect("/var/run/ubus.sock") if not ubus: print("ubus is empty or broken") exit() def callback(event, data): print("===== event %s received with value: %s" % (event, data)) ubus.listen(("mevent", callback)) ubus.loop() ubus.disconnect() ubus-send.py import ubus ubus.connect("/var/run/ubus.sock") if not ubus: print('ubus empty') exit(); print("sending event mevent..
[python][ubus] 간단히 ubus 보내고 받는 예제ubus-listen.py import ubus ubus.connect("/var/run/ubus.sock") if not ubus: print("ubus is empty or broken") exit() def callback(event, data): print("===== event %s received with value: %s" % (event, data)) ubus.listen(("mevent", callback)) ubus.loop() ubus.disconnect() ubus-send.py import ubus ubus.connect("/var/run/ubus.sock") if not ubus: print('ubus empty') exit(); print("sending event mevent..
2020.07.02 -
부끄럽지만 기록용으로 남겨둡니다.제목과 같은 오류는 오류 메시지를 잘 살펴보시면 경로가 맞는 것 같지만 나사가 하나 빠져 있습니다./var/run/ubus.socket 이 되어야 정상적으로 찾아들어가는데 슬래쉬 / 를 빼먹어서 발생한 문제입니다.졸릴 때는 잠시 키보드에서 손을 내려놓고 잠을 깬 뒤 다시 시작합시다!!
[python][ubus] failed to connect to the "ubus" socket var/run/ubus.sock부끄럽지만 기록용으로 남겨둡니다.제목과 같은 오류는 오류 메시지를 잘 살펴보시면 경로가 맞는 것 같지만 나사가 하나 빠져 있습니다./var/run/ubus.socket 이 되어야 정상적으로 찾아들어가는데 슬래쉬 / 를 빼먹어서 발생한 문제입니다.졸릴 때는 잠시 키보드에서 손을 내려놓고 잠을 깬 뒤 다시 시작합시다!!
2020.07.02 -
어쩌다 보니 파이썬 프로젝트를 수정하는게 업무로 떨어졌습니다.파이썬 개발 환경을 검색하여 구축하였는데.. 그 과정 중에 Visual Studio Community 상에서 python 환경을 선택했다가 회사 상황이 community 버전을 쓸 수 없는 상황이어서 이를 포기하고 Visual Code 를 설치하고 파이썬 extension 을 설치했습니다.파이썬 프로젝트를 clone 해서 Run/Start Debug 메뉴 또는 F5 키로 실행을 시키는데 PyQt5 모듈을 찾을 수 없다는 메시지가 뜹니다!! 그래서 원래 이 프로젝트 관련된 분에게 물어보니 requirements.txt 라는 파일이 있고 여기에는 의존 모듈이 있으니 다음 명령으로 의존 명령을 설치하면 잘 될거라고 합니다.pip install -r ..
VSCode 상에서 이미 설치된 모듈을 찾을 수 없다고 할 때 해결 방법어쩌다 보니 파이썬 프로젝트를 수정하는게 업무로 떨어졌습니다.파이썬 개발 환경을 검색하여 구축하였는데.. 그 과정 중에 Visual Studio Community 상에서 python 환경을 선택했다가 회사 상황이 community 버전을 쓸 수 없는 상황이어서 이를 포기하고 Visual Code 를 설치하고 파이썬 extension 을 설치했습니다.파이썬 프로젝트를 clone 해서 Run/Start Debug 메뉴 또는 F5 키로 실행을 시키는데 PyQt5 모듈을 찾을 수 없다는 메시지가 뜹니다!! 그래서 원래 이 프로젝트 관련된 분에게 물어보니 requirements.txt 라는 파일이 있고 여기에는 의존 모듈이 있으니 다음 명령으로 의존 명령을 설치하면 잘 될거라고 합니다.pip install -r ..
2020.06.04