Ubuntu 14.04 LTS の pip list で謎の AssertionError
事象
pip list
で謎の実行時例外
cat /root/.pip/pip.log ------------------------------------------------------------ /usr/bin/pip run on Sat Apr 2 08:30:48 2016 adium-theme-ubuntu (0.3.4) apt-xapian-index (0.45) argparse (1.2.1) cffi (1.5.2) chardet (2.0.1) colorama (0.2.5) command-not-found (0.3) cryptography (1.3.1) debtagshw (0.1) defer (1.0.6) dirspec (13.10) distribute (0.7.3) duplicity (0.6.23) enum34 (1.1.2) Flask (0.10.1) html5lib (0.999) httplib2 (0.8) idna (2.1) ipaddress (1.0.16) itsdangerous (0.24) Jinja2 (2.8) lockfile (0.8) lxml (3.3.3) MarkupSafe (0.23) oauthlib (0.6.1) oneconf (0.3.7.14.4.1) PAM (0.4.2) pexpect (3.1) Pillow (2.3.0) pip (1.5.4) piston-mini-client (0.7.5) protobuf (2.6.1) pyasn1 (0.1.9) pycparser (2.14) pycrypto (2.6.1) pycups (1.9.66) pygobject (3.12.0) pyOpenSSL (16.0.0) pyserial (2.6) pysmbc (1.0.14.1) Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 80, in run self.run_listing(options) File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 142, in run_listing self.output_package_listing(installed_packages) File "/usr/lib/python2.7/dist-packages/pip/commands/list.py", line 151, in output_package_listing if dist_is_editable(dist): File "/usr/lib/python2.7/dist-packages/pip/util.py", line 366, in dist_is_editable req = FrozenRequirement.from_dist(dist, []) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist assert len(specs) == 1 and specs[0][0] == '==' AssertionError
見解
- apt-get で入れてしまった python-pip に問題がある模様。version が 1.5.4 とかよくわからないバージョンを示していた。
easy_install pip
などが正解
環境
- Ubuntu 14.04 LTS (Desktop)
- Linux ------------------ 4.2.0-27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
補足
python-pip のアンインストールは
# apt-get autoremove python-pip
Sublime Text 2 で上下にスクロールする際のスムーズな動きを止めるには
Sublime Text 2 のオプションの中で、発見した時に最も感動したもの。
それは...
"scroll_speed" !!
↓下記のように 0 にすることにより、死ぬほど快適になる。
"scroll_speed": 0
これについて誰も言及してなさすぎ笑
※設定は [Preferences] -> [Settings - User] から
秘密のバー
Slack の Incoming WebHook を投げてみたメモ
はじめに
何らかのシステムから Slack のチャネルにメッセージを飛ばすメモ。
Integrations -> Incoming WebHooks から WebHook を作っておく。ここで Slack から提示された URL に POST を投げると Slack のチャネルにメッセージが届く、という仕掛け。
curl コマンドによるサンプル
どちらでもよいが、↓こういう投げ方と
curl -X POST --data-urlencode 'payload={"text": "えいっ!"}' https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX
↓こういう投げ方がある。
curl -X POST --data '{"text": "えいっ!"}' https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX
- “channel” や “username” といったキーも使用できる。"channel" が指定されれば、そのチャネルに、"username" が指定されればそのユーザー名でメッセージがポストされる。指定しなければ WebHook に設定したチャネルやユーザー名が適用される。
Python によるサンプル
payload のあたりがよくわからず、いろいろと試行錯誤してしまったが結局↓こういうこと。
#!/usr/bin/env python # coding: utf-8 import requests import json def _main(): # # コンテンツを準備 # values = {'text': 'えいっ!'} content = json.dumps(values, ensure_ascii=False) # # 組み立てたコンテンツ(=JSON)を Slack に送信 # url = 'https://hooks.slack.com/services/XXX...' answer = requests.post(url, data=content) print(answer.text) _main()
Perl によるサンプル
#!/usr/bin/env perl # coding: utf-8 use strict; use utf8; use LWP::UserAgent; use JSON; sub _main { binmode(STDIN, ':utf8'); binmode(STDOUT, ':utf8'); binmode(STDERR, ':utf8'); # # コンテンツの準備 # my $values = {text => 'えいっ!'}; my $content = JSON::to_json($values, {utf8 => 1}); # # 組み立てたコンテンツ(=JSON)を Slack に送信 # my $url = 'https://hooks.slack.com/services/XXX...'; my $user_agent = LWP::UserAgent->new(); my $response = $user_agent->post( $url, Content_Type => 'application/json; charset=UTF-8', Content => $content); if(!$response->is_success) { print($response->status_line, "\n"); return; } print($response->decoded_content, "\n"); } _main(@ARGV);
Ruby によるサンプル
#!/usr/bin/env ruby # coding: utf-8 require 'uri' require 'net/http' require 'json' def _main() # # コンテンツを準備 # values = {'text' => 'えいっ!'} content_text = JSON.generate(values) uri = URI.parse('https://hooks.slack.com/services/XXX...') request_data = Net::HTTP::Post.new(uri.request_uri) request_data['Content-Type'] = 'application/json' request_data.body = content_text # # コンテンツ(=JSON)を Slack に送信 # http_client = Net::HTTP.new(uri.host, uri.port) http_client.use_ssl = true response_data = http_client.request(request_data) print(response_data.message, "\n") end _main()
まとめ
payload??
PyCon JP 2015 (2015年10月10日, 11日 東京国際交流館プラザ平成)
メモ。
1日目
この日の現場に CHECK-IN。
オープニングに間に合った。オープニングと基調講演に参加することにこそ大きな意味がある(ような気がする)。
午前はオープニング、基調講演とセッションを2つ。
そろそろお昼かな...
ギョギョ!大人気!!
ランチはなんと自動車4台で食事の配給。
この日はチキンライスに決定。ソースが三種類用意されていたが「ハワイアン」を選択した。
おいしい!
午後もいくつかのセッションを聞いて...
お待ちかね、PyParty!ビール飲みます!
ご飯!
ご飯!!
ご飯食べたい!!
ビ、ビール!
ビール!
Instagram
野菜!
やった!まだたくさんある!!
こちらはムスリム向けと(もっとたくさんある)
しこたまビールを飲んで帰った。
つまらない話を聞いてくださった方々、ありがとうございます。
2日目
新橋からゆりかもめに乗る。小雨。
もう最前は譲らない。
思い出す... マイナビステージ...
現場到着。基調講演を聞くためにカンファレンスルームに入る。
まだ少し早いので人はまばら。
午前は基調講演を聞いたあと、ポスターセッションをまわり...
ご飯!おいしい!
午後もいくつかのセッションを聞いて帰りましたとさ。
謎のステッカー。
また来年〜
まとめ
- ランチが並び過ぎていた。
- 食べる場所が少なかった。
- パーティーでいろいろな飲み物が用意されていたので助かった人は多いのではないかと思った。
- 他の技術系カンファレンスに比べて PyCon は、データ分析、機械学習、ロボット、コンピュータービジョンなどといった分野の話題にやや寄っているように思う。大変興味深く、また強烈な刺激を受ける。
- コーヒーやお茶のサーバーとお菓子はさりげないがやはり嬉しいもの。
- 通訳は大変評判が良かった、との噂あり。いつもの人たちだったとすれば納得。
- ポスターセッションも興味深い。もう少し拡大してみてはどうか。
- 画面サイズのトラブルなど、細かい部分において調整不足を感じた。
- こどもワークショップはとても良い。
- 企業スポンサーのロゴをTシャツに入れないで欲しい。
- 気になった部分があるとすればそれは結局のところは人手(ともしかしたらスポンサー)の不足であるように思う。このコミュニティを支援するために自分にできることは何かを考えたい。