2012年1月12日木曜日

[Windows] Pythonの関連付け設定

今までPython2系を使っていたのですが、そろそろPython3系の勉強もはじめたいので、Windows環境にPython3をインストールしようと思います。でも、メインの開発環境はPython2のままにしておきたいです。Python3をインストールするとPythonファイルの関連付けなどが上書きされてしまうようですが…。

* * *

Pythonの関連付け設定を確認・変更したいです。

古いプロジェクトのメンテナンスのためだったり、必要なライブラリが特定のバージョンに依存していたり、新しいバージョンで動作確認をしてみたかったり。さまざまな理由で複数バージョンのPythonをインストールしなければならない場面があります。

Linuxならばvirtualenvpythonbrewなどを使って、複数バージョンのPythonを使い分けることもできるのですが、WindowsではPythonをインストールするたびにPATHや関連付けが上書きされてしまいます。結局、最後にインストールしたものが有効になっているため、複数バージョンを使い分けるのはとても難しい状態になっています。

せめて、普段使うバージョンのものをPATHや関連付けに設定しておいて、他のバージョンを使うときはバッチファイルなどで対処できるようにしたいです。

PATHの設定は環境変数を編集すればいいと分かりますが、関連付けの設定はどこでやればいいのでしょう。

解:

ftypeコマンドでPython.CompiledFile、Python.File、Python.NoConFileの関連付けを確認・変更しましょう。

Pythonの関連付けとして、以下の3つのファイルタイプが登録されています。


  • Python.CompiledFile
  • Python.File
  • Python.NoConFile


assocコマンドの出力を見ると分かるのですが、上記のファイルタイプはそれぞれ、以下の拡張子に関連付けられています。

D:\>assoc .py
.py=Python.File

D:\>assoc .pyo
.pyo=Python.CompiledFile

D:\>assoc .pyw
.pyw=Python.NoConFile

手元の環境では以下のように設定されていました。

D:\>ftype Python.CompiledFile
Python.CompiledFile="D:\Python26\python.exe" "%1" %*

D:\>ftype Python.File
Python.File="D:\Python26\python.exe" "%1" %*

D:\>ftype Python.NoConFile
Python.NoConFile="D:\Python26\pythonw.exe" "%1" %*

.pyと.pyoはコンソール付きで実行、.pywはコンソール無しで実行する設定になっています。どちらもPython2.6が設定されています。この値を変更することで、Pythonの関連付けを好きなように設定することができます。.pyファイルの関連付けをIDLEで開くようにしたい場合は、関連付けたいバージョンのidle.batに関連付けましょう。

* * *

Windowsの関連付けはDOSプロンプトで設定するのが、分かりやすくてよいと思います。

環境:

Windows 7

2012年1月10日火曜日

[Windows] 拡張子の関連付けをDOS窓で確認・変更する

インストールとアンインストールを繰り返すうちに混乱してくる、拡張子の関連付け。今はどのアプリケーションに設定されているのかちょっと確認したいだけなのだけど、関連付けの設定画面をどうやって出すのか分からなくなってしまいました…。

* * *

拡張子の関連付けをDOSプロンプトで確認・変更したいです。

Windowsでファイルをダブルクリックすると関連付けされたアプリケーションで開くことができます。とても便利な機能ですが、アプリケーションのインストールやアンインストールを繰り返すうちに、関連付けが上書きされてしまって、想定していたのとは違うアプリで開かれることもあります。

思わぬアプリに関連付けられていると、それがセキュリティホールになる場合もあるので、とりあえず関連付け設定の確認だけでもしたいのに、その設定画面にたどり着けない…なんてことも、よくある話です。

Windowsのバージョンによっても設定画面の出し方が変わったりしますので、DOSプロンプトで確認してしまったほうが、早いかもしれません。

解:

assocコマンドとftypeコマンドで拡張子の関連付けを確認・変更することができます。

Windowsの関連付けは以下のように、2段階で評価されます。

{拡張子} => {ファイルタイプ} => {アプリケーション}

最初の {拡張子} => {ファイルタイプ} の関連付けを確認・変更するコマンドがassocです。
{ファイルタイプ} => {アプリケーション} の関連付けを確認・変更するコマンドがftypeです。

例:
D:\>assoc .py
.py=Python.File

D:\>ftype Python.File
Python.File="D:\Python26\python.exe" "%1" %*

* * *

assocコマンドやftypeコマンドの出力が長すぎて表示できないときは、パイプとmoreコマンドを使いましょう。各コマンドについてもっと詳しい説明が知りたければ、helpコマンドを使うとよいでしょう。

環境:

Windows 7

2012年1月6日金曜日

[Windows] DOS窓で大量の出力があるとき

DOSプロンプトも、使いこなせば便利な場面がたくさんあります。

* * *

DOS窓で環境変数や大きいファイルの中身を表示するとき、スクロールできないほど長くて、見たいところが見えません。

Windows 7の時代になっても、ちょっとした設定などでDOS窓を使う場面がまだまだあります。Linuxのシェルと同じように使えることも多いのですが、コマンドの出力が大量にあったり、大きいファイルの中身を表示したりするときに、DOS窓のスクロール上限を超えてしまって、見たいところが見えないことがあります。grepが使えれば見たいところだけを見ることができるのですが、DOSコマンドにはgrepもありません。

解:

パイプとmoreコマンドを使いましょう。

例:

環境変数の一覧表示を、1ページずつ見ます。

> set | more

* * *

Linuxのシェルと同じように、コマンドの結果をパイプで他のコマンドに渡すことができます。ページャであるmoreコマンドも使えます。

環境:

Windows 7