2017-07-15 5 views
-1

コールイン関数でインポートがどのように機能しているかを理解するのに問題があります。私はそれが範囲に関連していると信じていますが、私はそれがどのように機能するか把握できません。私は実行に失敗しているpython import moduleグローバルローカルネームスペース

def usage(errorID): 
    # import sys 
    if errorID == 0: 
     print("blah blah blah") 
    print("blah blah blah") 
    print("blah blah blah"+\ 
    sys.exit() 

def main(): 
    import sys 
    # print(len(sys.argv),sys.argv) 
    try: 
     rootDir = sys.argv[1] 
    except IndexError: 
     usage(0) 

# MAIN PROGRAM 
# 
if __name__ =="__main__": 
    main() 

を含むPythonスクリプトのMyScipt.pyを持っている私は、似たようなサイト上の質問やいくつかのチュートリアルをチェックしましたが、私はちょうどそれが

をどのように機能するかを理解していないように見えます私は2行目(#インポートsysを)コメントを解除した場合

PS D:\xxx\python> python .\myScript.py blah blah blah blah blah blah blah blah blah Traceback (most recent call last): File ".\myScript.py", line 288, in main rootDir = sys.argv[1] IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File ".\myScript.py", line 299, in main() File ".\myScript.py", line 290, in main usage(0) File ".\myScript.py", line 15, in usage sys.exit() NameError: name 'sys' is not defined

、それは私が私のスクリプト内のすべての機能へのインポートを使用可能にするにはどうすればよい

をうまくいきますか?

+1

トップレベルのすべての関数定義で 'import sys'をインポートしないのはなぜですか? –

+0

それは実際にコードを書いた最初の位置でしたが、 'import os.path'をどこに呼び出すべきですか?私はこの質問に回答としてマークし、おそらく新しい質問を開きます。 ありがとうございます。 – user1649114

答えて

0

ただ、インポートのsysファイルの先頭に代わりの機能で事前に

感謝。

import sys 
def usage(errorID): 

    if errorID == 0: 
     print("blah blah blah") 
    print("blah blah blah") 
    print("blah blah blah"+\ 
    sys.exit() 

def main(): 
    import sys 
    # print(len(sys.argv),sys.argv) 
    try: 
     rootDir = sys.argv[1] 
    except IndexError: 
     usage(0) 

# MAIN PROGRAM 
# 
if __name__ =="__main__": 
    main() 

あなたがスクリプトに引数を渡していないため、2番目のエラーを得ている、あなたはすべてのあなたのフィードバックのためのsys.exit()

+0

あなたは正しいです。これは最初に入れたかったのですが、os.pathメソッドを使用しようとすると面倒です。私は別の質問を開くべきだと思う。 ありがとう – user1649114

1

感謝をすることはできませんので、その後、SYSが定義されていません。 import sysこのエラーを解決するには、スクリプトの冒頭に文を配置する必要があります

関連する問題