728x90
반응형

headless 크롬 사용 중 한동안 아래 에러때문에 고생해서...기록해둠.  

"Message: session not created from timeout: Timed out receiving message from renderer: 600.000" 

아래 코드대로 실행했더니 마침내 동작. 

# 셀레니움 작동 테스트 
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(1024, 768)) 
display.start()

user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)'

options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('user-agent={0}'.format(user_agent))
driver = webdriver.Chrome('/home/venus/Notes/98/chromedriver',options=options)
# 아무런 경고가 없다면 이상없이 작동되는 것입니다

driver.get(url='https://naver.com')
# 페이지 이동

print(driver.current_url)
# 이동되었는지 확인

driver.close()
# 종료

 

핵심은 아래 코드를 삽입해주면 되는 것이었다. 

 
from pyvirtualdisplay import Display
display = Display(visible=0, size=(1024, 768)) 
display.start()

 

반응형
728x90
반응형

크론 서비스 체크

service --status-all

아래와 같이 크론 데몬이 확인되고, [ - ] 표시와 같이 비활성화 상태이다.
그 밖에 다른 데몬의 이름 및 상태도 확인 가능.

jovyan@0e3594bcd35f:~$ service --status-all
 [ - ]  apparmor
 [ - ]  cron
 [ - ]  dbus
 [ ? ]  hwclock.sh
 [ - ]  procps
 [ + ]  udev
 [ - ]  x11-common

크론 시작 (crond 가 아님에 유의)

sudo service cron start

이후아래와 같이 확인

jovyan@0e3594bcd35f:~$ sudo service cron start
[sudo] password for jovyan: 
 * Starting periodic command scheduler cron 
반응형
728x90
반응형

오류 화면은 찍어두지 못했으나, 

맥북에서 chromedriver 를 다운받고 selenium 실행 시 이 설정이 없으면 에러가 발생한다. 

 

해결방법 

1. Terminal 실행 
2. chromedriver 파일이 저장된 경로로 이동.
3. 아래의 명령어를 입력.

xattr -d com.apple.quarantine chromedriver

 

이후 코드 재실행하면 잘 실행이 됩니다.

 

 
반응형
728x90
반응형

맨날 잊어버려서 써둔다. 

주피터 노트북을 실행할 때마다 실행해야 하는 코드들이 있을 것이다.
그런 코드들을 주피터 노트북 실행 시마다 자동으로 불러오는 설정이다. 

아래 경로로 이동하여 '00-startup.py' 파일을 생성해준다. 

User/.ipython/profile_default/startup 

 

생성해준  00-startup.py 파일에는 시작 시 실행하고자 하는 코드를 입력하고 저장한다. 
나의 경우는 아래 코드들을 보통 실행한다.

# 하나의 cell에서 multiple output을 출력을 가능하게 하는 코드
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

import numpy as np
import pandas as pd
import natplotlib.pyplot as plt
get_ipython().magic('matplotlib inline') 

# Pandas Dataframe의 사이즈가 큰 경우, 어떻게 화면에 출력을 할지를 세팅하는 코드
pd.set_option('display.float_format', lambda x: '%.3f' % x)
pd.set_option('max_columns', None)

 

 

 
반응형
728x90
반응형

Windows 10을 새로 설치 후 Docker 설치하여 구동하려는데 아래와 같은 에러가 계속 발생

"docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:8081: bind: An attempt was made to access a socket in a way forbidden by its access permissions."

구글에 검색 좀 해보니 아래 웹페이지에서 힌트를 얻고,
https://github.com/docker/for-win/issues/3171

cmd 창에서 아래와 같이 입력해 주었더니, 이미 tcp 제외범위가 확인됨

netsh interface ipv4 show excludedportrange protocol=tcp

제외범위의 port를 피해서 host port를 설정하니 컨테이너가 잘 생성되었음 

 

 
반응형

'Tech' 카테고리의 다른 글

Docker 주피터 노트북 크론  (0) 2021.09.24
주피터 노트북 초기 설정  (0) 2021.05.28
klaytn - smart contract 배포  (0) 2019.06.02
파일시스템  (0) 2019.05.15
윈도우 10 에서 Wireshark 시작 시 멈출 때  (0) 2019.05.05
728x90
반응형

선생님께 추천받음.

아래 다운받을 수 있는 링크임.

 

http://byteofpython-korean.sourceforge.net/byte_of_python.pdf

 

반응형
728x90
반응형

 

import sys
import io
import urllib.request as req
from urllib.parse import urlparse

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

url = "http://www.encar.com"

mem = req.urlopen(url)

# print(type(mem))
# python dict {}  , list [], tuple()  예습 필요


# print ("geturl", mem.geturl())
# print("status", mem.status)  # 응답값 200, 404, 403, 500 등 알아두어야 함.
# print("headers",mem.getheaders())

# print("info",mem.info())
# print("code", mem.getcode())
# print("read", mem.read(50).decode("utf-8"))  #옛날 사이트로 되있다면 euc-kr 등으로 디코딩함.

print(urlparse(url))

 

import sys
import io
import urllib.request as req
from urllib.parse import urlencode

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

#구글 검색 my ip api
# https://www.ipify.org/ -- 출처


API = "https://api.ipify.org"

values = {
'format' : 'json'
}

print('before',values)
params = urlencode(values)
print('after',params)

url = API + "?" + params
print("요청 url", url)

reqData = req.urlopen(url).read().decode('utf-8')
print("출력",reqData)

 

 

숙제 

import sys
import io
import urllib.request as req
from urllib.parse import urlencode

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

#구글 검색 my ip api
# https://www.ipify.org/ -- 출처

imgUrl1 ="https://ssl.pstatic.net/tveta/libs/1242/1242071/7263bcd2e96061265636_20190705115802112.jpg"
adUrl2 = "https://ssl.pstatic.net/tveta/libs/1239/1239407/92a189eb83ec9dcf5684_20190503133602254.jpg"

savePath1 ="homework.jpg"
savePath2 ="homework2.jpg"

f1 = req.urlopen(imgUrl1).read()  #이미지를 읽어와 f 에 저장
f2 = req.urlopen(adUrl2).read()

# saveFile1 = open(savePath1, 'wb')  # w: write, r: read, a: add  b:binary
# saveFile2 = open(savePath2, 'wb')
# saveFile1.write(f1)  #saveFile에 f의 데이터를 씀
# saveFile1.close()  #항상 리소스를 반납해줘야 하는 것 잊지 말것

# 이 아래 with 문을 자주 쓰는게 더 좋다고 함.
# 파이썬 2.7버전 이후로만 지원되며 with 문을 벗어나면 자동으로 자원 반환함

with open(savePath1, 'wb') as saveFile1:
    saveFile1.write(f1)

with open(savePath2, 'wb') as saveFile2:
    saveFile2.write(f2)


print("다운로드 완료!")

 

 

 

 

반응형
728x90
반응형

truffle deploy--network klaytn

truffle deploy --compile-all --reset --network klaytn
--compile-all : 모든 contract를 재컴파일 시킴
--reset : 강제적으로 재실행시킴
--> 노드에 컨트랙트 재배포. -> 재배포할 때마다 deployedAddress 가 바뀜.

  • 배포된 뒤에 build 라는 폴더가 생성되고, 그 아래 contract, 그 아래 json 파일이 2개 생성된 것을 볼 수 있다.
  • migration 폴더 아래 2_deploy_contract.js 파일 및 truffle.js 파일에서 명시한 내용이 AdditionGame.json 에 들어있다.

 

반응형

+ Recent posts