プロが教えるわが家の防犯対策術!

私の使っている本には:

”拡張子は必須ではありませんが”と、書いてあります。

しかし、実際として**.pyは付けないとwindowsではインタプリタの実行は行われません。

ここで、この問題点をPythonとWindowsの2つに分けて考えてみました。

Python自体には**.pyと言う拡張子をつける規則はないが、
Windowsとしては、**.pyの拡張子がないとPythonファイルとして認識しないので付ける。

以上で正しいでしょうか?
それとも、私が使っている本の”拡張子は必須ではありませんが”が間違っているのでしょうか?

宜しく、願います。

A 回答 (4件)

私の環境(Windows XP Pro)では、拡張子を付けなくても問題なく実行できました。


Python自体には拡張子必須という規則はないようです。
ただし、モジュールをimportする場合は、必須のようです。
実行が行われないというのは、どういう実行方法で実行していますか?
あとOSは何ですか?
    • good
    • 1

>実際として**.pyは付けないとwindowsではインタプリタの実行は行われません。



Windows 7で試してみましたが、普通に実行できました。単に、ダブルクリックで実行できないというだけではないですか。これは単純にWindowsでの拡張子の関連づけの問題であってPythonとは別に何の関係もない話です。自分で登録すれば他の拡張子でも普通に起動できます。
    • good
    • 0

1)「python スクリプト名」等として実行した場合


この場合は拡張子は関係ありません。.txt .pl 等でも構いません(混乱の元ですが)
Windowsでも、コマンドプロンプト等から上記のように入力したり、ショートカットを上記のように設定した場合には同様です。

2) unix系OSや互換環境で #! (shebang)を使用する場合
→ 1)とほぼ等価ですので、拡張子は関係ありません。

3) モジュールとして別のスクリプトから「import ~」として使う場合
→ 「~.py」 である必要があります。

4) Windowsでスクリプトをダブルクリックで実行する場合
→ このような場合に何を実行するか、を決める仕組みは、現状では「拡張子による関連付け」です。
#! のような、「実行するインタプリタを、そのスクリプトファイル自体で設定する」ような仕組みはありません。
よって、拡張子が必要です。


その本では、1),2)について述べていると思われます。
    • good
    • 0

>2) unix系OSや互換環境で #! (shebang)を使用する場合


>→ 1)とほぼ等価ですので、拡張子は関係ありません。
UNIX系OSにおいては一行目に書くパスとファイルのパーミッションの実行権ですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!