1

私はできる限り argparse を使用して最小限の Python プログラムを作成しました。わずか3行。

import argparse
if __name__ == "__main__":
    print "Hello World"

次のエラーが発生します。

ファイル "/Users/pfarrell/sandbox/dbms/extractor/src/extractor.py"、2 行目、インポート argparse の ImportError: argparse という名前のモジュールはありません

これは私が今までに書いた最初の python プログラムなので、python ライブラリ パスなどを適切に設定していないと簡単に信じられます。

これはOS-Xで実行されています

python --version  
Python 2.7.1  
pfarrell@way:~/sandbox/dbms/extractor/src$ python -c "import argparse; print argparse"  
<module 'argparse' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.pyc'>

さらなるテスト (コメントのおかげ)

シェルで明示的に実行すると機能しますが、netbeans 内で実行すると失敗します。

シェルのみ

python extractor.py -h  
Hello World  
usage: extractor.py [-h]  

optional arguments:  
  -h, --help  show this help message and exit  

スクリプトとして実行すると、まったく異なるパスが表示されます。netbeans のセットアップには微調整が必​​要なようです

./extractor.py  -h  
/Users/pfarrell/sandbox/dbms/extractor/src  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib- scriptpackages  
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python    
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old  
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload  
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC  
/Library/Python/2.7/site-packages  
Hello World  

netbeans 内で実行する

/Users/pfarrell/sandbox/dbms/extractor/src  
/Users/pfarrell/Library/Application Support/NetBeans/7.2.1/jython-2.5.1/Lib  
/Users/pfarrell/Library/Application Support/NetBeans/7.2.1/jython-2.5.1/Lib/site-packages  
/Users/pfarrell/sandbox/dbms/extractor/src  
__classpath__  
__pyclasspath__/  
Hello World
4

1 に答える 1

1

ありがとうございます。@sberryが示唆したように、パスにはいくつかの問題がありました。netbeans のデフォルトが jpython であることがわかりました。これは古い 2.5 バージョンです。標準の python 2.7.1 も使えますし、それを使うと幸せで楽しいです。

本当にありがとう。

于 2012-12-16T04:33:47.637 に答える