2013年ふりかえり
2013年大晦日ということで簡単にふりかえっておきます。
ふりかえり
- 今年の前半は、OSC2013にmercuriap-users.jpで出展をしたり、OSPN Pressに寄稿 したりと少し活動をしていましたが、プライベートが忙しくなり3月くらいから時間があまり割けなくなってしまいした。
- 後半は、WiXでインストーラーをつくったり、社内でWPF/MVVM入門の発表をしたり(このスライド)を大幅に加筆したもの)した程度で主にマイクロソフト寄りな技術方面の勉強になりました。
その他
- 出会いがあり別れがありました。気持ちの同期をとることが難しいですね。
- SPEC クローズの後編(爻ノ編)をみるタイミングを逸したのが心残りです。
Windows 7 / Python 2.7.6 にて ez_setup.py にて UnicodeDecodeError が出て困ったけど解決した件
Windows上でソースコードから開発版TortoiseHg をビルドしてみる
Mercurial & TortoiseHg Advent Calendar 2013 - connpass の 8日目のエントリです*1
TortoiseHg を 使っているとちょっと改良してみたいなぁと感じることもありますが、Windows上のビルド環境構築はけっこう面倒だったりしますね。Windows 上で環境をスクラッチでソースコードからビルドしてみましたのでご紹介します。
環境構築の概要
Windows 上での TortoiseHg のビルドは、 thg-winbuild リポジトリを用います。*2
手順は、TortoiseHg の thg-winbuild リポジトリの README に記載されている内容を参考にしています。
https://bitbucket.org/tortoisehg/thg-winbuild/src
ここでは Windows 7 の 32-bit および 64-bit を準備します。
Mercurial ビルドに必要なもの
まずは、Mercurial をビルドするために必要な環境を準備しましょう。
Python 2.7.6
Windows用のインストーラーからインストールします。ここでは 2.x系の最新である 2.7.6 をインストールします。
32-bit http://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
64-bit http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
- インストール先
C:\Python27
C:\Python27-x64
C++ Compiler
Visual Studio 2008 Express Edition を入れましょう
- Visual Studio 2008 Express Edition CD(DVD)イメージ版のダウンロード
http://go.microsoft.com/?LinkId=9348306
Visual Studio 2008 は Python 2.7 の場合の組み合わせです。(MinGW/MSYS は使わないほうが良いです)
gettext
下記からセットアッププログラムを最新版をダウンロードします
http://gnuwin32.sourceforge.net/packages/gettext.htm
gettext-0.14.4.exe が最新。
py2exe
http://sourceforge.net/projects/py2exe/
http://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/
32-bit py2exe-0.6.9.win32-py2.7.exe
64-bit py2exe-0.6.9.win64-py2.7.amd64.exe
上記 exe を実行してインストール。
Windows Installer XML
WiX の最新安定板を用いてよいでしょう。
ちなみに WiX38.exe が現時点の最新ですのでこれを入れます。*4
http://wix.codeplex.com/releases/view/115492
setuptools
こちらも PyPI で提供されているパッケージになります。
http://pypi.python.org/pypi/setuptools
Windows の場合は、下記手順でインストール可能です。
https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py を実行しましょう。
C:\Python27\python.exe ez_setup.py C:\Python27-x64\python.exe ez_setup.py
docutils
PyPIで提供されている Pythonパッケージ のひとつです。
そして easy_install docutils を実行すればOK。
C:\Python27\Scripts\easy_install.exe docutils
ドキュメントのビルドに必要な環境準備
MiKTeX (to build PDF docs)
setup-2.8.3553.exe をダウンロードし実行したところ、2.8はもうサポートが切れているといったメッセージが出て入らない。最新2.9 インストーラーをダウンロードしインストール。
HTML Help Workshop (to build CHM docs)
htmlhelp.exe をインストール。
TortoiseHgのビルド・インストーラーに必要なソフトウェア
PyQt 4.8 or later
http://www.riverbankcomputing.co.uk/software/pyqt/download
Pythonのバージョンとあわせたバイナリをダウンロード。
PyQt4-4.10.3-gpl-Py2.7-Qt4.8.5-x32.exe
pywin32
http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/
pywin32-218.win32-py2.7.exe
SVN
TortoiseSVN http://tortoisesvn.net/downloads.html
TortoiseSVNインストール時に、 svn のコマンドライン版を選択しインストールしておく。
comtypes (no longer optional)
- 32-bit
http://sourceforge.net/projects/comtypes/files/comtypes/0.6.2/
http://sourceforge.net/projects/comtypes/files/comtypes/0.6.2/comtypes-0.6.2.win32.exe/download
- 64-bit
http://sourceforge.net/projects/comtypes/files/comtypes/0.6.2/comtypes-0.6.2.zip/download
http://sourceforge.net/tracker/?func=detail&aid=3036368&group_id=115265&atid=692940
64-bitの場合は、ソースコードからインストールしましょう。
上記パッチは trunk に取り入れられているので、svnのtrunkからインストールします。
svn checkout https://svn.code.sf.net/p/comtypes/code/trunk comtypes-trunk cd comtypes-trunk C:\Python27-x64\python.exe setup.py install
Subversion Python bindings (no longer optional)
https://bitbucket.org/tortoisehg/thg-winbuild/downloads/svn_1.7.5_py27_x86.zip
https://bitbucket.org/tortoisehg/thg-winbuild/downloads/svn_1.7.5_py27_x64.zip
zip を解凍し、 svn と libsvn フォルダを site-packages 以下にコピーする
C:\Python27\Lib\site-packages
C:\Python27-x64\Lib\site-packages
以上で必要なビルドに必要なソフトウェアの準備が完了しました。
ビルド手順
ソースコード取得
コマンドプロンプトで下記コマンドを実行。
hg clone https://bitbucket.org/tortoisehg/thg-build cd thg-build python setup.py
スクリプト調整
thg-build/winbuild/setup.py の下記 try_paths の引数に 2.9 のパスを追加しておきます。
if not pdflatex: found = try_paths([r'\MiKTeX 2.7\miktex\bin\Pdflatex.exe', r'\MiKTeX 2.8\miktex\bin\Pdflatex.exe', r'\MiKTeX 2.9\miktex\bin\Pdflatex.exe'])
その他
もし mercurial など tortoisehg でビルド対象のパッケージがすでにインストールされていたら該当パッケージを別名にするか削除するかしておきましょう。
参考
最新TortoiseHg の各ソフトウェアバージョン TortoiseHg 2.10.1 時点
記バージョンですが、ここでは最新開発版をビルドしました。
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- 購入: 3人 クリック: 13回
- この商品を含むブログ (10件) を見る
PyCharm 3.0.2 にアップデート
PyCharm 3.0.2 がリリースされました。
[blog] Announcing PyCharm 3.0.2 URL
- Terminal fixes for Windows
- Remote interpreters fixes
- Test runner for Django 1.6 fixes
- Formatter, VCS fixes and other
Windowsのターミナルが改善されたとのことで期待してアップデートしました
PyCharm 3.0.1
PyCharm 3.0.2
文字ずれが修正されていますね。
hg glog とか たまに固まったりすることもありますがちょっとしたファイル操作などで使用すると便利かもしれません。
TortoiseHg のワークベンチから快適なターミナルを起動する(Windows)
Mercurial Advent Calendar 2013 2日目は、TortoiseHgのワークベンチから好きなターミナルの起動をできるようにしてみたいと思います。
Windows上でコマンド入力するterminalはいくつか選択肢があります。
基本は OS標準添付の cmd(コマンドプロンプト)であるがこれはとても使いづらいですね。
特に UNIX (Linux) 上のターミナルの開発経験が長い人はこれを痛感していることでしょう。
はじめに
今年はあまりTortoiseHgを触る機会が少なかった気がします。たまにバージョンアップするワークベンチから起動する端末のconsole2が起動しなくなりました(どうやら端末の設定の方法が変わったようです)。しかたなくcmdを使っていましたが、やはり不便なのでconsole2を起動する方法を調べました。
環境
- Windows 7 Professinal 64-bit
- console2 2.00b148
- TortoiseHg 2.10
- msysgit 1.7.9
TortoiseHg からターミナルを起動する
今年リリースされたどこかのバージョンからTortoiseHgのターミナルの設定の仕様が変わっていました。
デフォルトの状態では、インストールしている状態に応じて、設定可能なターミナルが選択するUIに変わっていました。
(従来はGUI上で設定を直接行っていた)
- bash_prompt
- cygwin_terminal
- windows_command_prompt
- powershell
私は、console2を愛用しているのでこれを使おうと思いますが、この一覧にはありません。
マニュアルをざっとみましたが、設定の方法がみつからない。
ソースコードrc および ソースコードあたりを見てみると、どうやら、 hgrc 内の [terminal-tools] セクションにて設定することができるようです。
console2 とは
私は、console2 + msysgit (1.7.9 UTF-8対応する前の最終版)を使用しています。console2 単体でcmdの置き換えができるだが、シェルとして自由に好きなシェルを登録したタブ切り替えで使用することができる。例えば、MSYS, msysgit, PowerShell, Visual Studio 2012 console など目的に応じてシェルを起動できるので気に入っています。
console2のIME入力対応パッチも出ているため、下記手順で導入でいます。
- console2 をインストール (C:\console2)
- Console IME対応パッチを適用する http://www.gembook.org/tag/console.html
- シェルの設定を行う
64-bit OS を使っているので、 x64 にしてみました*1
hgrc (mercurial.ini) (ターミナルを追加する)
terminal-tools のセクションに追加することで、プルダウンメニューから選択することができるようになります。
ここでは、あらかじめ 32-bit用と 64-bit 用を追加しておきます。
[tortoisehg] shell = console2-x64 [terminal-tools] # console2 console2.priority = -6 console2.executable-win = c:\console2\Console.exe # console2 x64 console2-x64.priority = -7 console2-x64.executable-win = c:\console2-x64\Console.exe
日本語およびカラーの表示に対応する
関連する .bashrc と .hgrc (mercurial.ini) を示しておきます。
この設定で、msysgit上で日本語表示と cmd 上のカラー表示ができます。
.bashrc (関連部分を抜粋)
alias ls='ls --color=auto --show-control-chars' export LANG=ja_JP.UTF-8 export LESSCHARSET=utf-8
.hgrc (関連部分を抜粋)
[tortoisehg] shell = console2-x64 [terminal-tools] # console2 console2.priority = -6 console2.executable-win = c:\console2\Console.exe # console2 x64 console2-x64.priority = -7 console2-x64.executable-win = c:\console2-x64\Console.exe [extensions] color= graphlog= pager= win32mbcs= [pager] #pager = less -FRSX pager = C:\msysgit\msysgit\bin\less.exe -f -FRSX #attend = annotate, diff, cat, help, glog, log, status attend = annotate, diff, cat, help, glog, log, status [color] #mode = auto mode = ansi
pager の指定を 絶対パスを使うことで cmd 上でも動作するようにしています。*2
color の mode は ansi を指定します。
cmd 上では、 set LESSCHARSET=utf-8 してから実行しています(環境変数に設定すると良いかも)
下記のような感じになります。左はmsysgitで、右はcmdです。
明日は、@ianMLewis さんです。では、はりきってどうぞ!
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- 購入: 3人 クリック: 13回
- この商品を含むブログ (7件) を見る
Ubuntu 12.04 LTS にて Python 3.3 の環境構築
Ubuntu 12.04 (precise) の Python 3系をインストールすると、Python 3.2.3 が入ります。Python 3.3 が使いたいですよね*1。そこで、最新の Python 3.3.2 をインストールし virtualenv を用いた環境を構築してみましょう。
1. PPA を導入
PPAにてPython3.3パッケージを公開している方がいます。自己責任で入れましょう。
$ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:fkrull/deadsnakes $ sudo apt-get update $ sudo apt-get install python3.3
2. setuptools のインストール
まずは、easy_installを導入します。setuptoolsというパッケージに入っていますので、Linuxの場合の手順 にしたがって導入します。
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py $ sudo python3.3 ez_setup.py
/usr/local/lib/python3.3 以下にインストールされます。
easy_install-3.3 コマンドが使えるようになります。
3. virtualenv のインストール
パッケージが導入できるようになったら、 virtualenv を入れましょう。
$ easy_install-3.3 virtualenv
4. virtualenv にて仮想環境をつくる
virtualenv は Python の仮想環境を好きなディレクトリにつくることができます。
下記は、 ~/venv3.3 以下に virtualenv環境をつくります。好きな場所でよいです。
$ virtualenv-3.3 ~/venv3.3
起動にする (activate)
tkondou@zion:~$ cd venv3.3 tkondou@zion:~/venv3.3$ source bin/activate (venv3.3)tkondou@zion:~/venv3.3$
期待どおり、python インタプリタが 3.3.2 になっています。
(venv3.3)tkondou@zion:~$ python Python 3.3.2 (default, May 16 2013, 23:40:52) [GCC 4.6.3] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
停止する (deactivate)
仮想環境から抜ける場合は、 deactivate します。
(venv3.3)tkondou@zion:~$ deactivate tkondou@zion:~$
5. ipython を virtual環境にインストールする
python インタプリタは ipython が使いやすいのでインストールします。
activate した状態で、pip コマンドでインストール可能です。
(venv3.3)tkondou@zion:~$ pip install ipython ... Successfully installed ipython Cleaning up...
ipython3 を実行することで ipython 無事起動します。
(venv3.3)tkondou@zion:~$ ipython3 Python 3.3.2 (default, May 16 2013, 23:40:52) Type "copyright", "credits" or "license" for more information. IPython 1.1.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]:
6. Python 3.3 を学ぶことができる書籍
Python 3.3 環境が導入できました。下記の本は 3.3 で実行することができますのでそばにおいておくて良いでしょう。
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (9件) を見る
空飛ぶPython即時開発指南書 (Programmer’s SELECTION)
- 作者: Naomi Ceder,新丈径
- 出版社/メーカー: 翔泳社
- 発売日: 2013/02/26
- メディア: 大型本
- クリック: 12回
- この商品を含むブログを見る
*1:13.04 raring や 13.10 saucy は Python3.3が apt-get で導入可能のようです
PyCharm と Mercurial の連携
本日の #TokyoMercurial で少し PyCharm と Mercurial の連携について調べてみました。diff画面がなかなかカッコイイので紹介します。
試したバージョンは、下記です。
ファイル追加 (hg add 相当)
普通にファイル追加すると、リポジトリに追加するかどうか聞かれます。追加すると もちろん hg add されます。
差分 (hg diff)
コミットする前には差分を確認しますが、PyCharm上でリポジトリとの差分を確認ができます。
いくつかコミットしたり新規に追加したりすると下記のような差分表示となります。
青色が変更点で、緑色が追加の箇所。なかなかわかりやすい表示ですね。
新規登録の場合は下記の表示。
ちなみに、TortoiseHg+Winmergeだとこんな感じの差分表示になります。
コミット (hg commit)
基本的にはファイルやディレクトリやプロジェクトを右クリックすると出てくるMercurialのメニューから Commit メニューを選択すればOKです。
コミット時にいろいろ選べるようです。
ファイルの状態 (hg status)
ファイルの色で状態がわかるようです。
青が変更で、緑が追加。diffの表示の色と同じです。
TortoiseHgを使っているのでピンと来ない表示ですが慣れてくると色で状態がわかってくるのかもしれません。
まとめ
今回できなかったこととしては、push/pullや、作業領域の切り替えなどありますが、通常頻繁に使う操作だとdiffを見ることが多いと思います。ファイル追加とdiffはエディタの延長で自然にできる感じがします。
また、PyCharm側でLocalHistoryとして変更履歴がありまして、ここからRevert(変更内容の復旧)ができるので頻繁なコミットをしなくても良いので便利かもしれません。