私はできる限り 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