2014-10-17 46 views
1

我安装了Python pdfminer module,它附带pdf2txt.py。我可以使用pdf2txt.py在命令行,如下所示:为什么我可以从命令行导入Python模块,但不能从脚本导入?

pdf2txt.py -o converted.html some-pdf.pdf 

的pdf2txt.py文件位于:

$ which pdf2txt.py 
/usr/local/bin/pdf2txt.py 

我也可以从交互式Python命令行导入它,而是我惊讶的是,我不能导入它的程序,我写:

enter image description here

有谁知道这是为什么,更重要的是,我该怎么解决呢?欢迎所有提示!

+1

https://docs.python.org/2/tutorial/modules.html#the-module-search-path – 2014-10-17 14:33:13

回答

1

很可能是因为您从与PDF2txt.py相同的目录启动了解释器,该解释器将它放入模块搜索路径中。你的python代码文件位于不同的目录中吗?

+0

对不起,我应该提到,情况并非如此。我从与脚本相同的目录(这是与/ usr/local/bin/pdf2txt.py不同的目录)开始解释器。 – kramer65 2014-10-17 15:01:58

+0

我们能否在解释器提示符和脚本中看到实际的ImportError和'print sys.path'? – ErlVolton 2014-10-17 15:19:20

1

原因正是因为您使用与脚本相同的目录启动解释器。您的脚本名称恰好与库名(pdf2txt)相同。在python的库搜索路径中,它将首先搜索其当前工作目录(脚本所在的同一目录)并导入pdf2txt.py,而不是pdf2txt.py的库版本。

尝试将您的脚本重命名为pdf2txt.py以外的任何内容,它应该可以工作。

相关问题