Win/Linuxの両方でpythonスクリプトを動作させるときの注意点など

そんなに書くわけじゃないのですが、ひっかかった所をメモしておきます。まだまだあると思われますが。。。

スクリプトファイルの扱い、文字コードの違い

Pythonスクリプト一行目の "#!/usr/bin/env python" はWinでは認識してくれないです。がLinuxでは重要ですので記述をする。

あと文字コード。まずはSJISは使わずに、UTF-8に統一しましょう。
Pythonスクリプト二行目への宣言 "# -*- coding: UTF-8 -*-" を忘れずに。

BOMと改行コードについても述べられてます。

ディレクトリ構造の違い

Linuxだと /home/myname/hogehoge となりますが、Winだと C:\Users\myname\hogehoge となります。そもそも構造からして違う。このあたりをカバーするときには前出のリンクを参照。

セパレーターの違い

例えばディレクトリパスのセパレーター文字列 '/' (Linux) と '\' (Win) を扱う時は、次が使えます

それでもカバーできない場合

例えばこんなケースで使いました。シェルとコマンドプロンプトの違いからくるものと理解してます。

  • Linux
    • php -r '$a=1;echo($a);'
    • ※Winのように " で囲むとNG
  • Windows
    • php -r "$a=1;echo($a);"
    • Linuxのように ' で囲むとNG

その他

最終的にはWindowsで動作させるためのノウハウを学ぶ、という姿勢がよいのかな。文化が違うプラットフォーム上で、同じように取り扱うっていうのは難しいものですね。