【问题标题】:No definition found for pandas in VS Code在 VS Code 中找不到 pandas 的定义
【发布时间】:2019-12-21 17:38:56
【问题描述】:

VS 代码 1.41.1

python3-pandas 0.23.3

Debian 破坏者 (10)

我无法在 VS Code 中获取 pandas 函数的定义。不过,所有其他 python3 包的定义都是可用的。这是一个 MWE:

import pandas
import quandl
df = quandl.get("WIKI/GOOGL")
df.fillna(value=-99999, inplace=True)

quandl.get() 的定义可用,但 df.fillna() 的定义不可用。其他 python3 模块的函数和类的定义也可用。顺便说一句,pip 和 pip3 不提供 pandas-doc,但我从 python 存储库(python-pandas-doc)安装了它。知道如何解决这个问题吗?

【问题讨论】:

  • quandl中的Q不是大写的吗? stackoverflow.com/questions/35461548/…
  • 您是否在虚拟环境中安装了 pandas,但在 vscode 中无法访问?还是您只是在虚拟环境之外进行 pip 安装?
  • @AlexanderSantos 以前是 Quandl,但现在改成了 quandl (stackoverflow.com/questions/37426196/…)
  • @MaxPower 使用 debian python3-pandas。 pandas 出现在pip3 list 下。不使用虚拟环境。
  • @zuz 听起来你的问题是 vscode,没有引用 virtualenv,而是引用 system-python,它在(大多数)unix 系统(可能包括你的系统)上将是 python2 env,并且您已经使用 pip3 在默认的 python3 环境中安装了 pandas。在 vscode 集成 shell 中,运行 python 并查看它是否生成 python2 或 python3 提示?最好的解决方案是始终使用虚拟环境并在您的 vscode 会话中引用特定的 virtualenv。不太好的解决方案是 pip-install pandas 将 pandas 安装到默认(可能是 python2)环境

标签: python pandas visual-studio-code


【解决方案1】:

我强烈建议您创建一个虚拟环境来使用 vscode。以下是我在 Windows 10 上创建它的步骤:

  1. 确保本地计算机中有 python 3.x 安装 virtualenv (pip install virtualenv)
  2. 在你项目的根目录下,创建一个虚拟环境(virtualenv -p "path_to_python.exe" .venv
    • vscode 应该自动检测这个虚拟环境,否则重启 vscode
    • 当你打开一个新的终端窗口时,vscode 应该能够激活 .venv,否则检查错误
    • 您可以手动激活虚拟环境,运行.venv\bin\activate.ps1 或者如果您使用的是Linux source .venv/bin/activate
  3. 使用您的依赖项创建一个requirements.txt 文件: [编辑]:为您的部门定义正确的版本是关键,否则您将不得不挖掘 pip 正在安装的版本。
pandas=>0.25.3,<0.26
quandl==3.4.8
...
  1. 在终端窗口中激活虚拟环境后,安装依赖项pip install -r requirements.txt(如果您只想完成代码并且不会在本地运行代码,请添加--no-deps

安装完成后,您应该可以使用 vscode 中的所有代码完成功能。

【讨论】:

  • 感谢您的反馈,但问题不在于虚拟环境(我已经用于其他 python 项目)或代码完成。这是关于系统范围安装中的定义。
  • virtualenv 是隔离依赖项的 Python 方式。如果您使用答案中的方法正确定义您的 pandas 和 quandl 版本,我相信您会看到正确的定义。祝你好运。
  • 依赖关系已经完全满足。实际上,问题中发布的 sn-p 以及使用其他 pandas 功能的其余代码(未在此处发布)都按预期工作。你真的不需要让我相信虚拟环境的好处,我也使用它们。但同样,这个问题与虚拟环境无关。
【解决方案2】:

我遇到了同样的问题:有一个示例:

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

VScode 可以找到 figure() 的定义,但是找不到 add_subplot 的定义。

【讨论】:

  • 欢迎来到 SO。请使用堆栈溢出的内置代码格式化工具格式化您的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 2018-05-31
  • 2021-05-06
  • 1970-01-01
  • 2021-06-04
  • 2020-02-05
相关资源
最近更新 更多