为什么找不到我的 Python 包裹?

Why is my Python package not being found?

我正在使用 PyPDF2 将多个 PDF 文件组合成一个输出。虽然我的代码之前可以运行,但在将文件移动到我计算机上的另一个文件夹后它已经停止了。无法再找到包:ModuleNotFoundError: No module named 'PyPDF2'.

我从 运行 pip list 开始,以确保包裹仍然存在(它是)。然后我尝试卸载并重新安装它,但没有成功。然后,我尝试进入虚拟环境,看看在那里安装软件包是否可以解决我的问题。它做到了,而且代码 运行 很好,但是,我需要它在 venv 之外工作。我已经从我的非虚拟环境中删除了所有包,只剩下这个:

Dr-Bubbles:Scripts $ pip list                            
Package    Version
---------- -------
pip        21.0.1
PyPDF2     1.26.0
setuptools 51.3.3
wheel      0.36.2

Dr-Bubbles:Scripts $ python3 mergePdf.py 
Traceback (most recent call last):
  File "mergePdf.py", line 10, in <module>
    from PyPDF2 import PdfFileReader, PdfFileMerger
ModuleNotFoundError: No module named 'PyPDF2'

作为参考,这里是脚本的导入部分:

from PyPDF2 import PdfFileReader, PdfFileMerger
from rich import print
OUTPUT_DIR = "/Users/bencarpenter/OneDrive/Personal/PDFs"

def main():
     # Main function

有谁知道我错在哪里?我愿意接受任何想法。非常感谢!

你是用 python 安装 pip 还是单独安装 pip?如果它是单独的,那么你需要卸载并重新安装 python,但在此之前,请尝试 pip freeze>requirements.txt。您需要妥善保管此 txt 文件。下载后,在安装向导中启用PATH和PIP。在 CMD 或终端中的 pip3 安装后尝试 pip(如果你在 MAC 或 Linux)。重新安装Python和pip后,需要输入pip3 install -r requirements.txt,就大功告成了。

我找到了。我的问题是 python3 的双重安装。 pip 附加到我的 python 自制软件安装,但 cli 中的 运行 python3 是 运行 系统安装。为了解决这个问题,我将 alias python=/usr/local/bin/python3 行添加到我的 .zshrc 文件中(如图 here 所示),使 运行 python3 始终指向 hombrew安装。感谢@Fatalerr 为我指明了正确的方向。