「実行しているスクリプトのパスを求める」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
__file__ を用いると「スクリプトへの相対パス」を取得できます。
ただ、モジュールが__main__のときはセットされないとのことです。
よくわからんですが、py2exeした後はメインのスクリプトでは参照することは出来ませんでした。importしたスクリプトでは依然使えます。
つまりこんな感じ。
script main.py
#code(){{
import sub
import os
print os.path.basename(__file__)
}}
script sub.py
#code(){{
import os
print os.path.basename(__file__)
}}
#code(){{
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内にまだあるし。
__file__ を用いると「スクリプトへの相対パス」を取得できます。
ただ、モジュールが__main__のときはセットされないとのことです。
よくわからんですが、py2exeした後はメインのスクリプトでは参照することは出来ませんでした。importしたスクリプトでは依然使えます。
つまりこんな感じ。
script main.py
#highlight(python){{
import sub
import os
print os.path.basename(__file__)
}}
script sub.py
#highlight(python){{
import os
print os.path.basename(__file__)
}}
#highlight(python){{
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内にまだあるし。