実行しているスクリプトのパスを求める

__file__ を用いると「スクリプトへの相対パス」を取得できます。
ただ、モジュールが__main__のときはセットされないとのことです。

よくわからんですが、py2exeした後はメインのスクリプトでは参照することは出来ませんでした。importしたスクリプトでは依然使えます。

つまりこんな感じ。

script main.py
import sub
import os
print os.path.basename(__file__)
 

script sub.py
import os
print os.path.basename(__file__)
 


C:\script\library.zip\sub.pyc
C:\script\main
Traceback (most recent call last):
  File "renderClient.py", line 638, in <module>
  File "wx\_core.pyc", line 7819, in __init__
  File "wx\_core.pyc", line 7416, in _BootstrapApp
  File "renderClient.py", line 378, in OnInit
NameError: global name '__file__' is not defined
 
(説明用コードですから実際は動かんと思いますよ)

まぁたしかにexe化しちゃえばもうスクリプトないわけで。
importしたのはlibrary.zip内にまだあるし。
最終更新:2009年07月08日 13:56
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。