为什么我可以从命令行导入Python模块,但无法在脚本中导入?
我安装了Python的pdfminer模块,里面包含了pdf2txt.py这个文件。我可以在命令行中这样使用pdf2txt.py:
pdf2txt.py -o converted.html some-pdf.pdf
pdf2txt.py文件的位置在:
$ which pdf2txt.py
/usr/local/bin/pdf2txt.py
我也可以在Python的交互命令行中导入它,但让我感到惊讶的是,我在写的程序里却无法导入它:
有没有人知道这是为什么?更重要的是,我该怎么解决这个问题?欢迎所有建议!
2 个回答
1
很可能是因为你在和pdf2txt.py同一个文件夹里启动了解释器,这样它就会把这个文件夹放进你的模块搜索路径里。你的Python代码文件是不是在另一个文件夹里呢?
3
原因很简单,因为你是在和脚本同一个文件夹里启动解释器的。你的脚本名字恰好和一个库的名字(pdf2txt)是一样的。在Python查找库的路径中,它会首先在当前工作目录(也就是脚本所在的文件夹)里查找,然后导入你的pdf2txt.py,而不是库里的pdf2txt.py。
试着把你的脚本改个名字,别叫pdf2txt.py,这样就应该能正常工作了。