为什么我可以从命令行导入Python模块,但不能从脚本导入?

时间:2014-10-17 14:31:44

标签: python command-line import module terminal

我安装了pdfminer module附带的Python pdf2txt.py。我可以从命令行使用pdf2txt.py,如下所示:

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

pdf2txt.py文件位于:

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

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

enter image description here

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

2 个答案:

答案 0 :(得分:1)

最有可能的原因是你从与pdf2txt.py相同的目录中启动了解释器,它将它放在你的模块搜索路径中。你的python代码文件是否位于不同的目录中?

答案 1 :(得分:1)

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

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