为什么 PyCharm 告诉我找不到 pyodbc 模块?
Why does PyCharm tell me the pyodbc module cannot be found when it works?
我下载并安装了最新的 Python (3.7),并通过标准 "pip install pyodbc" 方法和下载并安装非官方包装器安装了 pyodbc。但是,在我使用 pyodbc 的脚本中,PyCharm 在 pyodbc 下划了红色下划线,当我将鼠标悬停在它上面时,它会告诉我 "module not found"。在我的设置 | Project Interpreter 屏幕,它显示 pyodbc 已安装,当我 运行 我的脚本时,它可以工作。
我的问题是,当我键入函数名称和左括号时,它没有向我显示函数参数,就像它知道的模块一样。我想摆脱错误标记并获得 PyCharm 对 pyodbc 的全面支持的好处。我该怎么做?
注意:这与我一年半前发布的问题非常相似,但当时我没有得到有用的答案。该线程的一位评论者建议我卸载 pyodbc,然后 运行 python -m install pyodbc。我这样做了,但没有找零。
更新: 以下答案基于 PyCharm 2018.1 的测试。 PyCharm 2018.2.1 包含更新后的 "packaging_tool.py",可与 pip 10+ 完美搭配。
TL;DR:更新您的 PyCharm。
我能够使用 pip 18.0 重现您的问题。当 PyCharm 从 File > Settings > Project Interpreter
安装包时,它会调用名为 "packaging_tool.py" 的帮助脚本,该脚本与 pip 版本 10 及更高版本不兼容,因此尝试安装 any 来自那里的包裹将导致
AttributeError: module 'pip' has no attribute 'main'
JetBrains 必须修复该脚本才能完全解决问题。 (他们目前的解决方法似乎是将 pip 固定在 9.x 版本。即使 Project Interpreter window 将 pip 18.0 列为 "latest" 它也不会升级到它,如果我们 select pip 并单击升级(向上箭头)按钮。)
与此同时,pip_10+ 的解决方法是
- 在 PyCharm 中打开终端机 window (AltF12),
- 运行
pip install pyodbc
,
- 关闭终端 window 并打开
File > Settings > Project Interpreter
,
- 尝试安装一些其他的包,比如pandas(安装会因为同样的原因而失败),
- 关闭 "Available Packages" 对话框,然后
- 单击 "OK" 按钮关闭 "Settings" 对话框。
这应该触发 PyCharm 重新扫描已安装的包并在 PyCharm 编辑器中启用 pyodbc 代码完成。 (您可能需要重新启动 PyCharm 才能使更改生效。)
我下载并安装了最新的 Python (3.7),并通过标准 "pip install pyodbc" 方法和下载并安装非官方包装器安装了 pyodbc。但是,在我使用 pyodbc 的脚本中,PyCharm 在 pyodbc 下划了红色下划线,当我将鼠标悬停在它上面时,它会告诉我 "module not found"。在我的设置 | Project Interpreter 屏幕,它显示 pyodbc 已安装,当我 运行 我的脚本时,它可以工作。
我的问题是,当我键入函数名称和左括号时,它没有向我显示函数参数,就像它知道的模块一样。我想摆脱错误标记并获得 PyCharm 对 pyodbc 的全面支持的好处。我该怎么做?
注意:这与我一年半前发布的问题非常相似,但当时我没有得到有用的答案。该线程的一位评论者建议我卸载 pyodbc,然后 运行 python -m install pyodbc。我这样做了,但没有找零。
更新: 以下答案基于 PyCharm 2018.1 的测试。 PyCharm 2018.2.1 包含更新后的 "packaging_tool.py",可与 pip 10+ 完美搭配。
TL;DR:更新您的 PyCharm。
我能够使用 pip 18.0 重现您的问题。当 PyCharm 从 File > Settings > Project Interpreter
安装包时,它会调用名为 "packaging_tool.py" 的帮助脚本,该脚本与 pip 版本 10 及更高版本不兼容,因此尝试安装 any 来自那里的包裹将导致
AttributeError: module 'pip' has no attribute 'main'
JetBrains 必须修复该脚本才能完全解决问题。 (他们目前的解决方法似乎是将 pip 固定在 9.x 版本。即使 Project Interpreter window 将 pip 18.0 列为 "latest" 它也不会升级到它,如果我们 select pip 并单击升级(向上箭头)按钮。)
与此同时,pip_10+ 的解决方法是
- 在 PyCharm 中打开终端机 window (AltF12),
- 运行
pip install pyodbc
, - 关闭终端 window 并打开
File > Settings > Project Interpreter
, - 尝试安装一些其他的包,比如pandas(安装会因为同样的原因而失败),
- 关闭 "Available Packages" 对话框,然后
- 单击 "OK" 按钮关闭 "Settings" 对话框。
这应该触发 PyCharm 重新扫描已安装的包并在 PyCharm 编辑器中启用 pyodbc 代码完成。 (您可能需要重新启动 PyCharm 才能使更改生效。)