【问题标题】:Why does PyCharm tell me the pyodbc module cannot be found when it works?为什么 PyCharm 在工作时会告诉我找不到 pyodbc 模块?
【发布时间】:2018-08-18 05:32:17
【问题描述】:

我下载并安装了最新的Python(3.7),并通过标准的“pip install pyodbc”方法和下载安装非官方包装器安装了pyodbc。但是,在我使用 pyodbc 的脚本中,PyCharm 用红色强调了 pyodbc,当我将鼠标悬停在它上面时,它告诉我“找不到模块”。在我的设置 |项目解释器屏幕,它显示 pyodbc 已安装,当我运行我的脚本时,它可以工作。

我的问题是,当我输入函数名称和左括号时,它不会显示函数参数,就像它知道的模块一样。我想摆脱错误标记并获得 PyCharm 对 pyodbc 的全面支持的好处。我该怎么做?

注意:这与我一年半前发布的问题非常接近,但当时我没有得到有用的答案。该线程的一位评论者建议我卸载 pyodbc,然后运行 ​​python -m install pyodbc。我这样做了,但没有任何改变。

【问题讨论】:

  • 您可以“使缓存无效并重新启动”Pycharm。当您安装新的第三方包时,Pycharm 不会自动使用其依赖项重新索引您的项目。
  • 您的 PyCharm 项目是否配置为使用与您为其安装软件包的环境/解释器相同的环境/解释器?
  • @schwobaseggl 这很奇怪:我的总是以在线方式更新缓存本身(当我在适当的环境中安装某些东西时,PyCharm 会在几秒钟内检测到新包)。而且我已经使用 PyCharm 很多年了。
  • @EliKorvigo 有趣的是,我们也使用专业版多年,并且总是遇到当我们 pip 安装新软件包时必须重新启动 IDE 的问题。一种解决方法是在保存触发索引时编辑当前解释器(然后根本不编辑它)。
  • @schwobaseggl re: “当你安装一个新的第三方包时,Pycharm 不会自动重新索引你的项目及其依赖项。” - 它总是对我有用,至少当我通过 Settings > Project Interpreter .... 安装软件包时

标签: python pycharm pyodbc


【解决方案1】:

更新:以下答案基于使用 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 及更高版本不兼容,因此尝试从那里安装 任何 包将导致

AttributeError: 模块 'pip' 没有属性 'main'

JetBrains 必须修复该脚本才能彻底解决问题。 (他们当前的解决方法似乎是将 pip 固定在 9.x 版本。即使 Project Interpreter 窗口将 pip 18.0 列为“最新”,如果我们选择 pip 并单击升级(向上箭头)按钮,它也不会升级到它。)

与此同时,pip_10+ 的解决方法是

  • 在 PyCharm 中打开终端窗口 (AltF12),
  • 运行pip install pyodbc
  • 关闭终端窗口并打开File > Settings > Project Interpreter
  • 尝试安装一些其他的包,比如 pandas(安装会因为同样的原因而失败),
  • 关闭“可用包”对话框,然后
  • 单击“确定”按钮关闭“设置”对话框。

这应该会触发 PyCharm 重新扫描已安装的包并在 PyCharm 编辑器中启用 pyodbc 代码完成。 (您可能需要重新启动 PyCharm 才能使更改生效。)

【讨论】:

  • 谢谢。我刚刚收到 JetBrains 技术支持的消息。他们说这个问题很久以前就解决了,我需要升级 PyCharm。我做到了,它有效。
  • 我仍然遇到这个问题,我在 2019.1
猜你喜欢
  • 2020-02-25
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 2019-12-24
  • 1970-01-01
相关资源
最近更新 更多