2017-05-07 8 views
0

私はPython 3と、Hello Worldという単純な.pyファイルのフォルダを持っています。 os.chdir("path-to-file")を使用してファイルに移動し、その後、Pythonのコマンドラインにファイル名を入力します(例:demo.py)。私はこれを行う毎回が、私が言うエラーが出る:私はシンプル、WindowsのコマンドラインでPythonスクリプトを実行すると、とにかくWindows 7の.pyスクリプトを読む

Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'demo' is not defined

を、それが良い走っています。どうしてこれなの?

ちなみに、Pythonに関する追加の読書リスト/リンクは参考になります。あなたは本当に、すべてのコードは、関数やクラス内に含まれない限り、Pythonインタプリタ内でスクリプトを実行したくない

$ python3 /path/to/file 

:コマンドラインからスクリプトを実行するには

+1

Pythonプログラムに 'demo.py'という行を追加すると失敗するのと同じ理由で失敗します。これは有効なPythonコードではありません。 Pythonの "コマンドライン"は対話型のプログラミング環境ですが、Windowsのコマンドラインのようなシェル環境ではありません。 – deceze

+0

Pythonのコマンドラインで単純な.pyファイルをどのように読むべきですか? – IsaaK08

+1

Pythonプログラムと同じように、あなたはそうしません。あなたがモジュールとして 'import demo'を何か持っているのですが、あなたが対話モードの間にモジュールがどのように配置されているのかが厄介です。 '.py'ファイルを実行するには、Windowsのコマンドラインで行います。 – deceze

答えて

1

。のは、あなたのファイルscript.pyはこのようになっていることを言ってみましょう:

print("Beep boop") 

あなたはそれを

>>> os.chdir("path/to/file") 
>>> import script 
Beep boop 

をインポートすることにより、Pythonインタプリタでこのファイルを読み込むことができますが、これはこれについて行くの間違った方法です。 importは、ファイル間のコードの共有に使用されます。コードは実行されません。 script.pyではなく、このように見えた場合:

def main(): 
    print("Beep boop") 

if __name__ == "__main__": 
    main() 

次に、あなたがこの

>>> os.chdir("path/to/file") 
>>> import script 
>>> script.main() 
Beep boop 

またはこのようなようにそれを実行することができます:

$ python3 /path/to/file 
Beep boop 

あなたも同じで__init__.pyというファイルが必要になります最初の方法を動作させるためのディレクトリはscript.pyです。

コマンドラインの使い方についていくつかお読みになることをお勧めしますが、最初は挫折しましたが、努力する価値があります。

関連する問題