black「ImportError: cannot import name _unicodefun from click」 エラー対応
python の自動整形ツール black で以下エラーが発生した為、その時の対応をまとめます。
python の自動整形ツール black で以下エラーが発生した為、その時の対応をまとめます。
備忘録です。
AssumeRole でのアカウントスイッチで credentials 情報を持っている場合に対応した boto3.Session での認証の仕方です。
MFA 設定してる場合も付けときました。
自分にとっては dev.to でバズった Service Worker。
その概要と機能性をなぞってみようとチュートリアル的に学んだ内容をまとめました。
掲題の通り、Flask + Service Worker を Heroku で動作させ、PWA(Progressive Web Apps) してみました。
GCP から IBM Bluemix へ引っ越しました!
さくら VPS から GCP、
そして今度は GCP から IBM Bluemix に引越ししました。
以前 GCP 運用時の話はコチラ
GCP は GKE に LB かましたら価格がバコッと上がってしまい
無料枠を逸脱してしまいました (>_<)
なんとか低価格で運用したいという目論見です。
IBM Bluemix の良い所は機能が充実している所です。
無料・デフォルトで kibana が見れます。
その他 Git との連携も可です。
以下 Mac で作業することを前提に手順まとめました。
1 | macOS%$ git clone https://github.com/kenzo0107/toda-tocochan-bus-on-ibmbluemix |
1 | macOS%$ brew tap cloudfoundry/tap |
1 | macOS%$ cf api https://api.ng.bluemix.net |
Region | API URL |
---|---|
米国南部 | https://api.ng.bluemix.net |
英国 | https://api.eu-gb.bluemix.net |
Cloudfoundry の CLI のお陰で引っ越しも簡単でした ♪
セキュリティとして特定 IP やドメインからアクセスさせないとか出来たら
商用のメソッドとして利用出来そうかなと思いました。
その点質問してみましたが 2 週間ほど連絡がないので再度連絡してみます。
↑ 質問は英語限定でした!
サポートが強化されると有難いなと思いました。
以上
ご参考になれば幸いです。
Flask Official Site を参照すると冒頭に以下の文章があります。
1 | Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions |
Flask は Python の小規模なフレームワークで、 Werkzug や Jinja 2 をベースとしています。
最小限の構成で簡単な Web アプリケーションが作成できることです。
django, Rails でも簡単に出来なくもないですが、さらに手順は短く容易です。
1 | from flask import Flask |
初心者向け記事は多数あるので割愛し
学習がてら Web アプリケーション作ったのでそちらをどうぞ ♪
実際動くものとそのソースを見た方がイメージ湧くと思います。
戸田市のローカルバス toco ちゃんバスの停留所を指定しあと何分で来るかをカウントダウンするアプリです。
自分が使うので作ったら割と広まってきて嬉しい限り ♪
1 | ※ちなみに戸田市役所に確認し非公式ではありますが公開許可をいただいております。 |
ソースを参照頂けるとやってみたことがわかりやすいと思います。
さくら VPS には CakePHP や SpringBoot のプロジェクトが乗っかっていたりとやりたい放題の環境として所持しています。
ほぼほぼ 1 週間。仕事の昼休みと日曜大工で 10 時間足らずで公開出来ました。
どちらかというと js 側の学習コストが掛かった感じ。
今回作成したユーザ情報を管理しない、
DB を持たないアプリにはうってつけでした。
構成が複雑になりすぎず丁度良かったです。
やはり大きな規模のプロジェクトには django が適しています。
個人的に戸田市役所に電話して Web アプリ公開の許可を頂く、
という承認申請が出来、地域貢献できる喜びが非常に大きかったです。
今後、バージョンアップしたいと思います。
Flask 利用に際して参考になれば何よりです。
以上です。
これまで数社経験してきましたが
必ずといっていいほど存在する、
現状のステータスがわからないサーバ。。
Git 上の master とも差分が激しく生じている状態。。
そんなサーバとローカルの workspace との差分を確認すべく
ツールを作成しました。
今の所、
リモートからファイルをダウンロードする度に SSH のコネクションを張ってしまいパフォーマンス悪い(>_<)
はじめ pysftp で ssh コネクション張ってた方がパフォーマンスよかった気がする。
でも、手軽さを考えたら hostname 指定の方が良かったので
hostname 指定の方向でパフォーマンスを上げていくことを考えます。
ところが
pysftp で実装してみましたが 多段 ssh アクセスの場合がうまくいかず。。
随時解消させていきます。
golang で並行処理を試してパフォーマンスを上げるのも検討します。
MacOSX デフォルトでは python 2 系。
python 2.7 は 2020 年までのサポート なので
python 3 系 に慣れておこうということで
3 系環境を構築しようと思いました。
ですが
dlib など Python 2 系でないとうまく設定ができなかった経緯があり
(※自分の不手際の可能性もありますが)
両方残そうということで両仮想環境を構築します。
1 | $ sw_vers |
以下オフィシャルサイト参照してください。
2016/07/28 現在、 python = 2.7.10, python3 = 3.4.3
1 | $ brew install python python3 pyenv |
.bashrc もしくは .zshrc に追記します。
以下仮に .bashrc とします。
1 | vi ~/.bashrc |
1 | export PYENV_ROOT="$HOME/.pyenv" |
1 | $ source ~/.bashrc |
1 | sudo easy_install virtualenv |
1 | $ which python |
1 | $ virtualenv -p /usr/local/bin/python2.7 ~/py2env |
1 | $ which python3 |
1 | $ virtualenv -p /usr/local/bin/python3 ~/py3env |
1 | $ source ~/py2env/bin/active |
1 | $ source ~/py3env/bin/active |
今更ですが備忘録的まとめでした。
2017 年 3 月にサポート終了する CentOS5 ですが
今なお利用されているサーバは多々あるかと思います。
デフォルトインストールされている Python 2.4.3 を残した状態で
Python 2.6 をインストールし、pip の上位バージョンを利用できるようにする、
ことを目的とします。
1 | $ sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm |
1 | $ sudo vi /etc/yum.repos.d/epel.repo |
1 | $ sudo yum install python26 -y --enablerepo=epel |
1 | python26 -V |
あくまで python26 は pip を利用するようにする為に共存させています。
1 | wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py |
1 | $ pip --version |
機械学習養成読本という素晴らしい本を頂き早速学習を深めています。
115ページ 第2部 第1章
「Pythonのインストール」がすんなりいかなかったのでメモです。
pyenv install 3.4.3
を実行すると以下のようなエラー出ませんでしたか?
1 | Downloading Python-3.4.3.tgz... |
1 | $ brew install sqlite3 |
以下コンパイラに渡す変数の設定が肝でした。
10.3 Variables Used by Implicit Rules
気をつければいけないのはMacにデフォルトでインストールされているPython
Python のPATH(/usr/local/bin)から外す
1 | $ which python |
pip もインストール済みであるならば同様にパスから外す。
1 | $ which pip |
他にPythonのPATHをexportしていなければ
pyenv でインストールしたPythonにパスが通るはずです。
1 | $ which python |
Pythonの文字コードを utf-8 に設定する。
python で以下のような画像URLから画像をダウンロードする処理を実装した所
掲題のエラーが発生しました。
1 | # -*- coding: utf-8 -*- |
1 | localfile.write(img.read()) |
以下対話式で確認してみると ascii と表示されました。
これを utf-8 に変更します。
1 | $ python |
バージョン確認時にパスが出力されます。
1 | $ pip --version |
1 | vi /usr/lib/python2.7/site-packages/sitecustomize.py |
1 | import sys |
上記内容で保存。
utf-8 になりました。
1 | $ python |
これで掲題のエラーが解決されました。