インストールしないでPython2.6を動かしてみた
ずいぶん前にした質問を自己解決できそうなので、その手順をメモしておく。
使ったのはPython2.6.6+Windows7。コピーして試してみたのはWindowsXP。
Python2.6.6のインストール
まずはネタ元のPythonをインストール。重要なのは「Install just for me」。このオプションを選択しないと、python26.dllがインストール先ディレクトリにコピーされない。
コピー先PCでPythonが動作させるには以下のdllが必要なので、忘れずに選択すること。あとの選択はどうでもいい。以下は「C:\python26」にインストールしたものとする。
- python26.dll
- msvcr90.dll
- Microsoft.VC90.CRT.manifest
必須ライブラリのインストール
easy_install、IPythonは必須だろうから、インストールしておく。
CD /d C:\python26 python ez_setup.py CD scripts easy_install ipython easy_install pyreadline
pywin32のインストール
あるといろいろ便利なのでpywin32をインストールしておく。ただし、「easy_install pywin32」ではコピー先PCでDLLがロードできないので、ソースからインストールする。理由は不明。
このときCコンパイラを設定しておく必要があるかも。よく覚えてない。
pywin32を動作させるためには、pythoncom26.dllとpywintypes26.dllが必要なので、「C:\python26」にコピーしておく。
CD /d pywin32_source_directory python setup.py install CD /d C:\python26\Lib\site-packages\pywin32_system32 COPY pythoncom26.dll C:\python26 COPY pywintypes26.dll C:\python26
Fabricのインストール
デプロイツールFabricもあると便利なのでインストールしておく。
CD /d C:\python26\Scripts easy_install fabric
pythonのコピー
以上の作業を行った後、「C:\python26」以下のファイルをコピー先PCにコピーする。これでもpython単体は動作するが、easy_installやIPython、Fabricが動作しない。
これは「C:\python26\Scripts」以下のpyファイルに記述されているpythonのパスがおかしいため。コピー先PCでも「C:\python26」にコピーすれば動くかもしれないが、それだといまいちなので、どこにコピーしても動作するようにパスを修正する。
こんなスクリプト「fix_pythonpath.py」をコピー先ディレクトリに配置して、
# -*- encoding: utf-8 -*- # fix_pythonpath.py import glob import sys def fix_pythonpath(): """ pythonスクリプトのパスを修正します。 """ for file in glob.glob(r'python\scripts\*.py'): template = open(file, 'r') try: lines = template.readlines() finally: template.close() target = open(file, 'w') try: is_first_line = True for line in lines: if is_first_line: target.write('#!%s\n' % sys.executable) is_first_line = False else: target.write(line) finally: target.close() if __name__ == '__main__': fix_pythonpath()
こんなバッチをコピー先ディレクトリに配置する。
REM fix_pythonpath.bat SET CURRENT_DIR=%~DP0 SET PYTHONHOME=%CURRENT_DIR%python SET PATH=%PYTHONHOME%;%PYTHONHOME%\Scripts;%PATH% python fix_pythonpath.py
あとはバッチを実行してやればOK。
CD /d PYTHON_COPY_DIR fix_pythonpath.bat
これでpythonはもちろん、easy_installやIPython、Fabricも動作するようになる。