Pythonがサクサク書ける!emacsにjediをインストールする。
今日は、素晴らしい完成度のemacs24にjediをインストール方法を紹介したいと思います。
emacsでここまでpythonがサクサク書けるようになるとは思わなかった。
参考にさせてもらったのは下記サイト
emacs-jediのinstall - Qiita
下準備
- virtualenvをインストールしておきます。
$ pip install virtualenv
package.elからjediをインストール
まずは、package.elにmelpaを追加してjediをインストールできるようにします。
;=============== ; package.elの設定 ;=============== (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (package-initialize)
jediの初期設定
virtualenv上にepcとjediパッケージをインストールします。
まずは.emacs.dの下にダウンロードされたjediのディレクトリに移動し、virtualenvを作成します。
自分がインストールしたのは「jedi-20130714.1228」
つぎに、virtualenvの環境にjediとepcパッケージをインストールします。
virtualenv上にインストールすると env/lib/python2.7/site-packages にインストールされるのでシステムに影響しません。
$ source env/bin/activate
$ pip install jedi epc
jediをinit.elに設定
~/.emacs.d/init.elに以下のように書きましょう。
;=============== ; jedi (package.elの設定より下に書く) ;=============== (require 'epc) (require 'auto-complete-config) (require 'python) ;;;;; PYTHONPATH上のソースコードがauto-completeの補完対象になる ;;;;; (setenv "PYTHONPATH" "/usr/local/lib/python2.7/site-packages") (require 'jedi) (add-hook 'python-mode-hook 'jedi:setup) (setq jedi:complete-on-dot t)
以上で設定完了です。
とにかく補完の早さが素晴らしい。iPython感覚でサクサク補完、サクサクコーディング出来ます。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (133件) を見る
Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
- 作者: Wes McKinney,小林儀匡,鈴木宏尚,瀬戸山雅人,滝口開資,野上大介
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/12/26
- メディア: 大型本
- この商品を含むブログ (19件) を見る
入門 ソーシャルデータ ―データマイニング、分析、可視化のテクニック
- 作者: Matthew A. Russell,奥野陽(監訳),佐藤敏紀(監訳),瀬戸口光宏(監訳),原川浩一(監訳),水野貴明(監訳),長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/11/26
- メディア: 大型本
- 購入: 18人 クリック: 779回
- この商品を含むブログ (42件) を見る
Dartの環境をそろえよう
覚書。すこしずつ勉強しましょう。
エディタ
- Dart公式 (DartEditor)
- Dartium plugin(Eclipse plugin)
https://www.dartlang.org/tools/eclipse-plugin/
https://github.com/nex3/dart-mode
入門サイト
- Dart公式 Turtorial
https://www.dartlang.org/docs/tutorials/
http://www.atmarkit.co.jp/ait/articles/1208/29/news120.html
- Dart: Up and Running
Dart: Up and Running: A New, Tool-Friendly Language for Structured Web Apps
- 作者: Kathy Walrath,Seth Ladd
- 出版社/メーカー: O'Reilly Media
- 発売日: 2012/11/10
- メディア: ペーパーバック
- この商品を含むブログを見る
これはキレイ!Pythonでインデント付き出力
きっとPythonならあるだろう!
そう思ってjsonやらxmlをインデント付きで出力する方法をしらべました。
8.18. pprint — Data pretty printer
8.18. pprint — Data pretty printer — Python 2.7.16 documentation
import pprint xml = "..." pp=pprint.PrettyPrinter(indent=4) pp.pprint(xml)
無骨なJavaとは違いますね。
幸せな気分になれます。
Pythonのリストとスライス覚書
久々ですね。。。
いつもJavaばかりなので
スライスをすぐに忘れてしまいます。
というわけで覚書
list =["0","1","2","3","4"] list[0] #'0' list[4] #'4' list[1:2] #['1'] list[1:-1] #['1', '2', '3'] list[1:] #['1', '2', '3', '4'] list[:2] #['0', '1'] list[:] #['0', '1', '2', '3', '4']
入門ソーシャルデータはじめました 1章イントロダクション
入門 ソーシャルデータ ―データマイニング、分析、可視化のテクニック
- 作者: Matthew A. Russell,奥野陽(監訳),佐藤敏紀(監訳),瀬戸口光宏(監訳),原川浩一(監訳),水野貴明(監訳),長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/11/26
- メディア: 大型本
- 購入: 18人 クリック: 779回
- この商品を含むブログ (42件) を見る
まだ1章なので、突っ込んだ内容はありません。
Twitter APIの使い方とか、データの扱い方
データを加工するPythonモジュールの使い方を紹介がメインです。
とりあえず、本に書いてあるとおり、ソースコードを書いているんですが
困ったことに動かないソースがおおい。。
下準備は以下のとおり。
(Ubuntuだと楽ちんですね。)
sudo apt-get install python-networkx python-nltk python-numpy
○例1-3
こんな序盤で動かなくなるとは。。
TwitterのトレンドAPIの呼び出し方が変わったらしい
http://holidayworking.org/memo/2011/11/21/2/に正解が書いてありました
import twitter twitter_api = twitter.Twitter(domain='api.twitter.com', api_version=1) trends = twitter_api.trends._woeid(_woeid=1) [ trend['name'] for trend in trends[0]['trends'] ]
○例1-11
こちらは、typoとnx.DiGraphの仕様変更?
import networkx as ns import re g = nx.DiGraph() all_tweets = [ tweet for page in search_results for tweet in page["results"]] def get_rt_sources(tweet): rt_patterns = re.compile(r"(RT|via)((?:\b\W*@\w+)+)", re.IGNORECASE) return [source.strip() for tuple in rt_patterns.findall(tweet) for source in tuple if source not in ("RT","via")] for tweet in all_tweets: rt_sources = get_rt_sources(tweet["text"]) if not rt_sources: continue for rt_source in rt_sources: g.add_edge(rt_source, tweet["from_user"], {"tweet_id" : tweet["id"]}) #)}ではなく}) g.number_of_nodes() g.number_of_edges() g.edges(data=True)[0] len(nx.connected_components(g.to_undirected())) sorted(nx.degree(g).values()) #values()をつけないと本のような出力にならない