<Python, requests> requestsでSSLError

最近requestsSSLErrorが出るようになってしまった。。。

In [10]: import requests

In [11]: r = requests.get(url, verify=False)

ってやって、verifyを無視すれば、少々せきゅりちーに問題ありだがアクセスできるらしい。。。

hige-sun.net

で、、requestsが呼ばれるモジュールの場合は、、、

In [12]: import requests.api
    ...: import warnings
    ...: 
    ...: 
    ...: def requestspatch(method, url, **kwargs):
    ...:     kwargs['verify'] = False
    ...:     return _origcall(method, url, **kwargs)
    ...: 
    ...: _origcall = requests.api.request
    ...: requests.api.request = requestspatch
    ...: warnings.warn('Pathched requests: SSL verification disabled!')

ってやれば、いいらしい。

stackoverflow.com

とりあえず、アクセスはできるが、、、
もうちょいなんとかならんもんかにょー。。。

もうちょい調べてみた。。。

stackoverflow.com

pip install -U certifiしてみたけど、だめだったす。。。
verify=Falseで対応するしかないのか? 今のところ???

<Python, pandas, pyOpenSSL> 久々に使ったらエラーだらけ。。。

pandas-datareaderを久々に使ったらエラーだらけだった。。。

その1 ImportError

In [17]: import pandas as pd

In [18]: import pandas_datareader.data as web
:
ImportError: cannot import name 'PandasError'

pd.__version__
Out[19]: '0.20.2'

pandas==0.20.2に対して、pandas_datareaderが古い0.2.0とだめ、アップデート要。

その2 Error...x509 certificate...

In [20]: from datetime import datetime

In [28]: df = web.DataReader("TXN", 'yahoo', datetime(2015,1,1),datetime(2016,7,1))
:
Error: [('system library', 'fopen', 'No such file or directory'), ('BIO routines', 'BIO_new_file', 'no such file'), ('x509 certificate routines', 'X509_load_cert_crl_file', 'system lib')]

試した結果、pyOpenSSL古い16.2.0とだめらしい。。。

結局下記モジュールをアップデートしたっす。。。

pyOpenSSL=17.3.0
pandas-datareader==0.5.0
pip 8.1.1

<tmux> tmux 2.4

tmux 2.4にアップデートしたら、tmux.conf読み込みでエラー。

これに従い修正。

www.yusukezzz.net

<Bash> unary operator expected

unary operator expectedちゅうエラーメッセジーがでた。

これのことらしい。

ritchiekotzen.hatenablog.com

<Shell script> シェルのジョブ制御を有効にする

シェルスクリプトShell scriptで、バックグラウンドbg/ backgroundに落としたジョブjobを、
フォアfgに持ってくるには??? で悩んだ。

こちらにお世話になり解決。
set -mらしい。

ksaito11.blogspot.jp

Xvfbコマンドで、仮想ディスプレイを立ち上げ、リモートからコマンドラインで制御かける時に使ったなり。

#! /bin/sh

set -m

Xvfb :2 -screen 0 800x600x24 &
export DISPLAY=:0.0

python selenium_hogehoge.py

kill %1

参考。

Linuxコマンド集 - 【 set 】 シェルのオプションを設定する:ITpro

<Python, codecs> 文字列のエンコード、デコード

文字列strエンコードencodeとデコードdecode

codecsというモジュールでいろいろ対応できるらしいっす。

In [8]: import codecs

文字列を期待するものたち、、、

In [10]: codecs.encode('hage', 'utf8')
Out[10]: b'hage'

In [11]: codecs.encode('hage', 'rot13')
Out[11]: 'untr'

バイト列を期待するものたち、、、

In [12]: codecs.encode(b'hage', 'base64')
Out[12]: b'aGFnZQ==\n'

In [13]: codecs.encode(b'hage', 'zip')
Out[13]: b'x\x9c\xcbHLO\x05\x00\x03\xfa\x01\x96'

In [15]: codecs.encode(b'hage', 'hex')
Out[15]: b'68616765'

In [16]: codecs.encode(b'hage', 'bz2')
Out[16]: b'BZh91AY&SY[G\xf8a\x00\x00\x01\x81\x00"\xc0 \x00!\x9ah3M\x17<]\xc9\x14\xe1BAm\x1f\xe1\x84'

In [17]: codecs.encode(b'hage', 'uu')
Out[17]: b'begin 666 <data>\n$:&%G90  \n \nend\n'

参考にしたところ。

qiita.com

マニュアル。

7.2. codecs — codec レジストリと基底クラス — Python 3.6.1 ドキュメント

キーワード。 暗号、復号

<Python, yaml> Yamlしてみた。

設定ファイル config fileの1つの形式である、yamlをやってみた。

In [1]: s = '''
   ...: name: Hage
   ...: sex: male
   ...: class: useless
   ...: hair: nothing
   ...: arms:
   ...: - gun
   ...: - pachinko
   ...: '''

In [3]: with open('aaa.yaml', 'w') as f:
   ...:     f.write(s)
   ...:     

In [4]: more aaa.yaml

name: Hage
sex: male
class: useless
hair: nothing
arms:
- gun
- pachinko

In [5]: import yaml

In [6]: with open('aaa.txt', 'r') as f:
   ...:     data = yaml.load(f)
   ...:     

In [7]: data
Out[7]: 
{'arms': ['gun', 'pachinko'],
 'class': 'useless',
 'hair': 'nothing',
 'name': 'Hage',
 'sex': 'male'}

にゃるほど。

参考にさせてもらったところ。

www.lifewithpython.com

PyYAMLDocumentation – PyYAML

Rubyist Magazine - プログラマーのための YAML 入門 (初級編)