为什么我可以从命令行导入Python模块,但无法在脚本中导入?

3 投票
2 回答
3953 浏览
提问于 2025-04-28 03:18

我安装了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的交互命令行中导入它,但让我感到惊讶的是,我在写的程序里却无法导入它:

enter image description here

有没有人知道这是为什么?更重要的是,我该怎么解决这个问题?欢迎所有建议!

暂无标签

2 个回答

1

很可能是因为你在和pdf2txt.py同一个文件夹里启动了解释器,这样它就会把这个文件夹放进你的模块搜索路径里。你的Python代码文件是不是在另一个文件夹里呢?

3

原因很简单,因为你是在和脚本同一个文件夹里启动解释器的。你的脚本名字恰好和一个库的名字(pdf2txt)是一样的。在Python查找库的路径中,它会首先在当前工作目录(也就是脚本所在的文件夹)里查找,然后导入你的pdf2txt.py,而不是库里的pdf2txt.py。

试着把你的脚本改个名字,别叫pdf2txt.py,这样就应该能正常工作了。

撰写回答