解決策
Pythonの
os.path.abspath(<relative path>)関数は、相対パスを現在の作業ディレクトリ(CWD)からの相対パスとして解釈します。
WindowsコマンドプロンプトからPythonスクリプトを呼び出す場合、CWDは通常Pythonスクリプトファイルの場所と同じです。その結果、CWDに関連して定義された生成されたファイルパスも、Pythonスクリプトファイルに関連するようになります。
LabVIEWを使用してPythonスクリプトを呼び出す場合、CWDはデフォルトでLabVIEWが最初に起動されたディレクトリです。つまり、
スタートメニューからLabVIEWを開くと、CWDは
C:\Windows\System32になります。
この現象に関しまして、2つの対処方法があります:
- 相対パスを定義するときに、CWDではなくスクリプトファイルの場所を参照するようにPythonスクリプトを編集する。
- LabVIEWからCWDをプログラム的に変更する。
LabVIEWからCWDを取得または設定するためのサンプルVIがあります。サンプルVIを使用することでPythonスクリプトを呼び出す前にCWDが設定されている場合は、相対パスを決定できます。