【问题标题】:Autocomplete for cv2 not working properly in vscodecv2 的自动完成功能在 vscode 中无法正常工作
【发布时间】:2020-11-05 12:54:58
【问题描述】:

我试图弄清楚为什么 cv2 包的自动完成功能无法正常工作。下面是一些关于我正在使用的问题和版本以及我尝试解决它的信息:

VS Code 中的自动完成功能

版本信息

  • opencv-python: 4.4.0.46
  • 绝地: 0.17.2
  • numpy: 1.19.4

以上三个包都安装在C:\...\anaconda3\lib\site-packages

  • Visual Studio 代码: 1.50.1
  • Python 扩展: v2020.10.332292344
  • Python 版本: 3.8.3

我的尝试

  • 我检查了我的软件包是否安装在this question 建议的默认位置,但没有成功。它们安装在默认位置,但仍然无法正常工作。

  • 按照this issue 中的建议,当我在PowerShell 中执行命令行print(jedi.Script("import cv2\ncv2.").completions()) 时,它会正确地自动完成,但在VS Code 中仍然无法正常工作。结果如下:

PS:我限制了输出,因为问题的字符数有限制,不能全部带完。

>>> print(jedi.Script("import cv2\ncv2.").completions())
<stdin>:1: DeprecationWarning: Deprecated since version 0.16.0. Use Script(...).complete instead.
[<Completion: >, <Completion: absdiff>, <Completion: ACCESS_FAST>, <Completion: ACCESS_MASK>, <Completion: ACCESS_READ>, <Completion: ACCESS_RW>, <Completion: ACCESS_WRITE>, <Completion: accumulate>, <Completion: accumulateProduct>, <Completion: accumulateSquare>, <Completion: accumulateWeighted>, <Completion: ADAPTIVE_THRESH_GAUSSIAN_C>, <Completion: ADAPTIVE_THRESH_MEAN_C>, <Completion: adaptiveThreshold>, <Completion: add>, <Completion: addText>, <Completion: addWeighted>, <Completion: AffineTransformer>, <Completion: AGAST_FEATURE_DETECTOR_AGAST_5_8>, <Completion: AGAST_FEATURE_DETECTOR_AGAST_7_12D>, <Completion: AGAST_FEATURE_DETECTOR_AGAST_7_12S>, <Completion: AGAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION>, <Completion: AGAST_FEATURE_DETECTOR_OAST_9_16>, <Completion: AGAST_FEATURE_DETECTOR_THRESHOLD>, <Completion: AgastFeatureDetector>, <Completion: AgastFeatureDetector_AGAST_5_8>, <Completion: AgastFeatureDetector_AGAST_7_12d>, <Completion: AgastFeatureDetector_AGAST_7_12s>, <Completion: AgastFeatureDetector_create>, <Completion: AgastFeatureDetector_NONMAX_SUPPRESSION>, <Completion: AgastFeatureDetector_OAST_9_16>, ... 
  • 已尝试将numpy 软件包更新到最新版本 (1.19) 并尝试使用旧版本 (1.10)。没有成功。

如果有人能给我一个提示,我会很高兴,甚至指出问题的真正所在(VS Code、python 扩展、jedi 包)。

最后一条信息:numpy 自动完成功能正常。

【问题讨论】:

  • 您希望在自动完成中看到什么内容?您是否尝试过使用其他 Python 语言服务?例如:扩展名:“Pylance”。
  • 我想看cv2包的属性和方法,都没有显示。我也在用pylance,忘了提问题了。

标签: python visual-studio-code autocomplete opencv-python jedi


【解决方案1】:

我在设置 Jetson Nano 2GB 时遇到了同样的问题,按照Paul McWhorter 的说明进行操作。卸载 python3-opencv 包后,这会破坏 cv2 的完成。

我跑了一个跟踪,发现绝地再也找不到图书馆了。我的解决方案是创建一个指向它正在寻找的位置的链接。我认为有比我的方法更好的方法来解决这个问题。

cd /usr/lib/python3.6/dist-packages/cv2;ln -s python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so ./__init__.cpython-36m-aarch64-linux-gnu.so

路径和命令语法很可能需要更改以匹配您安装的 python 版本。

【讨论】:

  • 如何使您的解决方案适应 Windows?而且我也在使用 Anaconda 发行版
  • 我使用的是 Linux,所以我只能提供一个建议。在 anaconda 下找到 dist-packages/cv2,然后不要使用“链接”,只需复制文件即可。应该有一个“python3.6”目录,将该目录下的库复制到dist-packages/cv2目录为__init__.cpython-36m-aarch64-linux-gnu.so
猜你喜欢
  • 2020-10-12
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多