1

我已经尽可能地使用 argparse 编写了一个最小的 python 程序。就三行。

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

它得到以下错误:

文件“/Users/pfarrell/sandbox/dbms/extractor/src/extractor.py”,第 2 行,在 import argparse ImportError: No module named 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'>

更多测试(感谢评论)

在 shell 中显式运行它可以工作,但在 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 回答