WindowsへPythonをインストールしたら、真っ先に実行すべきバッチファイル

ウノウラボ Unoh Labs: 2009年版Python開発環境を整えよう
  ↓
Ehrenの日記: Windowsでもvirtualenvwrapperっぽい環境をつくる

記事を読んでて「virtualenv」「pip」「env.py」の組み合わせは便利だなぁということで、一連の設定を自動でやってくれるバッチファイルを作成しました。前提条件はPythonのインストールが完了していることだけです。当方はPython2.7(Windows XP SP3 x86)で動作を確認しました。

まず、後述のバッチファイルを適当な名前(setup_envpy.bat)で保存します。その時、最初のほうにある「PYDIR」を自分の環境に合わせて書き換えます。必要があれば「VIRTUALENV_PATH」と「HTTP_PROXY」も書き換えてください。

あとは実行。完了すればデスクトップに「sample_env」へのショートカットが出来ます。要らなければ消してください。「env.py」は「%PYDIR%\Scripts」に保存されています。

以上。

2010.9.3追記

Python2.6でも動作を確認しました。あと、pipを使おうと思ったらよくコンパイラが見つからないと怒られます。なので「VC++2008 Express」を入れて「C:\Program Files\Microsoft Visual Studio 9.0\VC」にパスを当してあげることもお忘れなく。

@if(0)==(0) echo off

set PYDIR=C:\Python27

set VIRTUALENV_PATH=%PYDIR%\virtualenv

rem HTTP_PROXY is "example.com:8080"
set HTTP_PROXY=

echo.
echo ############################################################
echo  Python install path is [%PYDIR%].
echo  Default virtualenv path is [%VIRTUALENV_PATH%].
echo  HTTP proxy setting is [%HTTP_PROXY%]
echo ############################################################
echo.
echo Installing [easy_install], [virtualenv] and [env.py].

echo.
echo continue?[Y]
echo Y -^> [Enter]
echo n -^> [Ctrl-C]
pause

set PYSCRIPTS=%PYDIR%\Scripts
if not exist %PYSCRIPTS% mkdir %PYSCRIPTS%
echo.
echo ############################################################
echo  Download and install [ez_setup.py]
echo ############################################################
echo.

set OLD_CD=%CD%
cd %PYSCRIPTS%

set URL=http://peak.telecommunity.com/dist/ez_setup.py
call :WGET %URL%
%PYDIR%\python -c "%SCRIPT%">ez_setup.py

%PYDIR%\python ez_setup.py

cd %OLD_CD%

echo.
echo ############################################################
echo  Install [virtualenv]
echo ############################################################
echo.

%PYSCRIPTS%\easy_install virtualenv

echo.
echo ############################################################
echo  Download and usage of[env.py]
echo ############################################################
echo.

set OLD_CD=%CD%
cd %PYSCRIPTS%

set URL=http://bitbucket.org/jdriscoll/envdotpy/raw/f3dd370337e9/env.py
call :WGET %URL%
%PYDIR%\python -c "%SCRIPT%">env.py.tmp1

set BEFORE=C:\\\\virtualenvs\\\\
set AFTER=%VIRTUALENV_PATH:\=\\\\%
call :REPLACE %BEFORE% %AFTER%
more env.py.tmp1 | %PYDIR%\python -c "%SCRIPT%">env.py.tmp2

set BEFORE=virtualenv.exe
set AFTER=%PYSCRIPTS:\=\\\\%\\\\virtualenv.exe
call :REPLACE %BEFORE% %AFTER%
more env.py.tmp2 | %PYDIR%\python -c "%SCRIPT%">env.py

del env.py.tmp1
del env.py.tmp2
cd %OLD_CD%

echo ^>set PATH=%%PATH%%;%PYSCRIPTS%
set PATH=%PATH%;%PYSCRIPTS%

echo ^>env.py -h
env.py -h

echo.
echo ############################################################
echo  Create sample shortcut into Desktop
echo ############################################################
echo.

cscript //nologo //E:JScript "%~f0" "%~dp1" "%PYSCRIPTS%\env.py"

echo.
echo ############################################################
echo.
pause
exit /b



:WGET
set SCRIPT=import urllib2;u=urllib2.urlopen('%1');print u.read();u.close();
exit /b

:REPLACE
set SCRIPT=import sys;print sys.stdin.read().replace('%1','%2');
exit /b

@end
wsh=new ActiveXObject('WScript.Shell');
shortcut=wsh.CreateShortcut(wsh.SpecialFolders("Desktop")+"\\sample_env.lnk");
shortcut.TargetPath=WScript.Arguments.Item(1);
shortcut.Arguments=" -c sample_env"
shortcut.WorkingDirectory="%HOMEDRIVE%%HOMEPATH%";
shortcut.Save()
WScript.Echo("Created sample_env.lnk")