virtualenv 環境で sphinx を試してエラーが出て先生に尋ねたら解決した
Python のパッケージをインストールする場合、virtualenv を使うのが常識のよう なので、sphinxやその拡張もシステムに直接インストールせずに、virtualenv環境でやってみようと考えていました。
- sphinxのビルド環境を virtualenv で用意する(ドキュメント毎にsphinxの拡張の導入も楽になることも期待)
- virtualenv 自体も 隠しディレクトリとして sphinx のビルド環境に含めたい
そこで実験をするために、下記手順を行いました。
(環境は、Windows 7です)
適当なディレクトリに移動 ( %HOME%\work\temp とか ) に移動し下記コマンドを実行。
virtualenv .env .env\Scripts\activate.bat pip install sphinx sphinx-quickstart make.bat html
make html でエラーが出る
ERROR: Error in "currentmodule" directive: というエラーが出ます。
う~ん。なぜだろうと思い、 @shimizukawa 先生に聞いてみました。
(.env) C:\Users\tkondou\work\temp>make.bat html Making output directory... Running Sphinx v1.1.3 loading pickled environment... not yet created building [html]: targets for 4 source files that are out of date updating environment: 4 added, 0 changed, 0 removed reading sources... [ 25%] .env/Lib/site-packages/sphinx/ext/autosummary/templat s/autosummary/base reading sources... [ 50%] .env/Lib/site-packages/sphinx/ext/autosummary/templat s/autosummary/class reading sources... [ 75%] .env/Lib/site-packages/sphinx/ext/autosummary/templat s/autosummary/module reading sources... [100%] index C:\Users\tkondou\work\temp\.env\Lib\site-packages\sphinx\ext\autosummary\templa es\autosummary\base.rst:4: ERROR: Error in "currentmodule" directive: maximum 1 argument(s) allowed, 3 supplied. .. currentmodule:: {{ module }} C:\Users\tkondou\work\temp\.env\Lib\site-packages\sphinx\ext\autosummary\templa es\autosummary\class.rst:4: ERROR: Error in "currentmodule" directive: maximum 1 argument(s) allowed, 3 supplied. ...
原因
.env 以下にインストールしたsphinxに含まれている rstファイルもビルド対象になってしまっていることが原因でした。
sphinx の挙動として、ソースディレクトリを分離しない場合は、カレントディレクトリがソースディレクトリに指定されます*1
その場合、 .env もソースフォルダとして指定されてしまい、.envの奥深くに存在する .rstファイルをビルドしようとして、エラーが出るとのことです。
解決策
.env をビルド対象から外します。
conf.py の exclude_patterns に .env を追加します。文字列として追加するので '' で囲んでくださいね。
# List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build', '.env']
今後の予定
virtualenv のフォルダはドキュメントフォルダに含めないほうがいいのかもしれない。それとも、sourceフォルダを分けたほうがいいのか、ベストプラクティスの模索は続きます。
*1:> Separate source and build directories (y/N) [n]: でそのままリターンキーを押した場合
分散バージョン管理の機能比較まとめ
DVCSで有名なものですと、 Git , Mercurial, Bazaar があります。
最近では、Veracity という分散バージョン管理も出てきました。どのように違ってどういう基準で選ぶと良いか悩みますね。これらの違いはなんでしょうか?
そこで、比較資料をまとめてみました。
公式サイト一覧
Git | http://git-scm.com/ |
Mercurial | http://mercurial.selenic.com/ |
Bazaar | http://bazaar.canonical.com/ |
Veracity | http://veracity-scm.com/ |
DVCS 比較資料
新しい(と思われる)順番に並べました。
- DVCS 選択: Git それとも Mercurial? | Atlassian
- Veracity,Git,Mercurial,Bazaar,Fossilの比較
- PEP 374 -- Choosing a distributed VCS for the Python project
- これから分散バージョン管理システムを始める人へ - Google スライド
- ユカイ、ツーカイ、カイハツ環境!(3):分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT
- - DVCSAnalysis - support - Analysis of Git and Mercurial - User support for Google Project Hosting - Google Project Hosting
- 分散型バージョン管理システムはどれが良い? | スラッシュドット・ジャパン デベロッパー
バージョン管理ソフトウェアの比較資料
従来の集中型を含めたバージョン管理ソフトウェアの比較資料
- http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
- も英語ですが、DVCSだけではなく、バージョン管理ソフトウェア機能やコマンドの比較が充実しています。比較対象が非常に多いですね。
- 分散バージョン管理で間違いないって、ベイビー - The Joel on Software Translation Project
- 分散バージョン管理入門 (イラスト入り) - tcha.org
- 作者: 岡本隆史,武田健太郎,相良幸範
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 103回
- この商品を含むブログ (25件) を見る
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- 購入: 3人 クリック: 13回
- この商品を含むブログ (15件) を見る
入門TortoiseHg+Mercurial 書評
Mercurialコミッタのフジワラさん(id:flying-foozy)から、"入門TortoiseHg+Mercurial"を頂きましたのでこのエントリで紹介させていただきます。
- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- 購入: 3人 クリック: 3回
- この商品を含むブログ (5件) を見る
http://www.shuwasystem.co.jp/products/7980html/3710.html
- 第1部 1人での作業
- 第2部 チームでの作業
- 第3部 より高度な使い方
- 第4部 補遺
どんな人を対象としているか
この本の対象読者は、(1)履歴管理が始めてな人 (2)CVS/Subversionを使用している人 (3)Mercurialを使用している人 です。
私自身は(2)CVS/Subversionを使用している人に該当していました。
TortoiseHg を使うひとつの理由
SubversionをWindowsで使っている方 (TortoiseSVNが多いでしょう)で、流行りの分散バージョン管理が気になっている方も多いと思います。
Mercurialに出会い会社に導入した大きな理由として、Windows上での快適な操作を目的としたところがあります。
分散バージョン管理の中で最も有名なGitは、コマンドライン前提の設計でエンジニア寄りであり、履歴管理は”手段”と捉えた場合に導入コストも安くないです。そういった理由でMercurial(TortoiseHg)を選ぶ人も多いです。
TortoiseHgとTortoiseSVNの違い
TortoiseHgとTortoiseSVNの違いはなんでしょうか。もちろんSVNとMercurialという大きな違いはあるのですが、GUIを使用する際の心構えとしてTortoiseSVNは、エクスプローラ統合の右クリックメニューからの操作が主だと思います。
これはファイルやフォルダに対する操作を行う考え方です。一方、TortoiseHgでは、”ワークベンチ”といって、一つ(または複数)のリポジトリに対する操作を包括的に行うことができるGUIをどーんとメインに起動してそこから操作を行うことが多いです。
コミットツリーも視覚的に見れます。このあたりのメンタルモデルの違いは念頭に置くとよいと思います。*1
また、Windowsの場合、TortoiseHgのみインストールすれば、Mercurialコマンドも同梱されますので便利です(最近のTortoiseSVNではコマンドラインをインストールすることもできます)
本書の読み方
補遺にインストール手順が書いてあります。まずはTortoiseHgをインストールしましょう。最低限の初期設定をしてあとは一人から始めましょう。
本書籍では、そういった最初の導入を一人で始め、チームで行うやり方、頭から順番に読むことで、少しずつ身につけることができます。
もちろんTortoiseHgはGUIですので、豊富な画面もついていますので、理解しやすいです。
またファイルを間違って登録してしまったことを取り消したいといったやりたい状況別に読むこともできます。
"第2章 うっかりミスを取り消す"はあらかじめ読んでおくと安心ですね。
慣れてきたら、ひとりでも、デスクトップPCとノートPC間や、会社と自宅間での履歴反映をやってみると、マージの経験値があがるでしょう。
本書で、ぜひ TortoiseHgとMercurial の世界に足を踏み入れてみてください。良い意味で戻ることはできなくなるでしょうから。
関連記事
- 「オープンソース」を使ってみよう (第28回 Mercurial 編)
- TortoiseHgの導入をチュートリアル形式でススメられるような記事を以前書きました。合わせてお読みいただけると幸いです。
.NET Framework のバージョンを確認する
調べたらバッチファイルで確認する方法 があるので、Windows8 で試してみました。
svnversion で subversion の リビジョンが取得できる
svnversion を使えば、シンプルに revision だけ取得できます。
Windows 7 32-bit / TortoiseSVN 1.7.10 / msysgit の環境で実行しています。
$ svnversion 212 $ which svnversion /c/Program Files/TortoiseSVN/bin/svnversion
svnversion -h で helpがみられます。
$ svnversion -h usage: svnversion [OPTIONS] [WC_PATH [TRAIL_URL]] Produce a compact 'version number' for the working copy path WC_PATH. TRAIL_URL is the trailing portion of the URL used to determine if WC_PATH itself is switched (detection of switches within WC_PATH does not rely on TRAIL_URL). The version number is written to standard output. For example: $ svnversion . /repos/svn/trunk 4168 The version number will be a single number if the working copy is single revision, unmodified, not switched and with an URL that matches the TRAIL_URL argument. If the working copy is unusual the version number will be more complex: 4123:4168 mixed revision working copy 4168M modified working copy 4123S switched working copy 4123P partial working copy, from a sparse checkout 4123:4168MS mixed revision, modified, switched working copy If WC_PATH is an unversioned path, the program will output 'Unversioned directory' or 'Unversioned file'. If WC_PATH is an added or copied or moved path, the program will output 'Uncommitted local addition, copy or move'. If invoked without arguments WC_PATH will be the current directory. Valid options: -n [--no-newline] : do not output the trailing newline -c [--committed] : last changed rather than current revisions -h [--help] : display this help --version : show program version information -q [--quiet] : no progress (only errors) to stderr
参考
Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)
- 作者: Mike Mason,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2007/04/21
- メディア: 単行本(ソフトカバー)
- 購入: 35人 クリック: 662回
- この商品を含むブログ (100件) を見る
Windows で which コマンドを使えるようにする
Linux や Unix でおなじみの which コマンドが Windows にはない。よく準備するのでメモ。
準備手順
この内容を which.bat として、 パスの通っているところ(例えば C:\Windows\System32 )におけばOK。
gist においていますので、 view raw をクリックすると、ダウンロードできます。
実行結果
which コマンド名で、そのコマンドがどこに存在するのかわかります。
C:\Users\tkondou>which hg C:\Program Files\TortoiseHg\hg.exe C:\Users\tkondou>which java C:\Windows\System32\java.exe C:\Users\tkondou>which which C:\Windows\System32\which.bat
便利です。標準で欲しいですね。
Cygwin のバージョンを知る方法
Cygwinのターミナルを開いて下記コマンドで確認できます。
uname は、 Linux や UNIX でも使えるコマンドです。
$ uname -r 1.7.16(0.262/5/3)
また、 cygcheck コマンドがあります。
$ cygcheck -c cygwin Cygwin Package Information Package Version Status cygwin 1.7.16-1 OK
参考
プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)
- 作者: Neal Ford,島田浩二(監訳),夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/04/27
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 238回
- この商品を含むブログ (97件) を見る
- 作者: Cameron Newham,Bill Rosenblatt,株式会社クイープ
- 出版社/メーカー: オライリージャパン
- 発売日: 2005/10/27
- メディア: 大型本
- 購入: 6人 クリック: 132回
- この商品を含むブログ (43件) を見る