【问题标题】:how to fix the "__path__ attribute not found" error for packages installed by pip installer?如何修复 pip 安装程序安装的软件包的“__path__ 属性未找到”错误?
【发布时间】:2025-12-12 12:30:30
【问题描述】:

我最近使用 pip install 安装了 opencv 包,并编写了一个小代码来测试它(cvtest.py)。该代码通过 python idle shell 运行,但在命令提示符下运行它会给出错误

Error while finding module specification for 'cvtest.py' (ModuleNotFoundError: __path__ attribute not found on 'cvtest' while trying to find 'cvtest.py')

我尝试卸载并重新安装 python 和包。使用python -m site 查找系统路径会给出这些结果。我是笔记本电脑的唯一用户。

sys.path = [
'C:\\Users\\Kareem Mostafa\\Desktop\\Assignments\\computer vision',
'G:\\Python37\\python37.zip',
'G:\\Python37\\DLLs',
'G:\\Python37\\lib',
'G:\\Python37',
'G:\\Python37\\lib\\site-packages',

这是我正在使用的代码

import cv2
x=cv2.imread('backpack for sale.jpg',0)
cv2.imshow('x',x)

更新:无论是否需要导入,我拥有的所有 py 文件都存在问题。显然python正在为所有文件寻找_init_.py,就好像它们是包一样。知道发生了什么吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    对于遇到此问题的其他人(假设 kareemostafa 现在已修复它!)

    删除python -m 命令上的.py 后缀修复了这个问题,看起来-m 只需要模块名称,而直接作为python 文件运行(没有-m 选项)需要.py 后缀

    在你的情况下python -m cvtest 应该足够了。

    【讨论】:

    • 在 Windows 命令行 (ConEmu) 的自定义包装器上对我来说也是如此,并且您的解决方案有效!
    • 我有一个嵌套结构并且没有使用 .py 并且仍然遇到错误。
    • @s2t2 我在错误的目录中运行它时出现此错误(它包含一个与包(目录)同名的文件aaa.pyaaa我尝试使用python -m aaa.bbb运行. 我改变了目录,它工作了。
    • 奇怪,我之前用.py后缀让这个命令工作过。
    • 好笑,一开始它抱怨in文件中的代码内容,我可以通过几个步骤来修复它,因此python3 -m显然在执行之前打开了文件.最后它仍然没有执行它只是因为文件名后缀。