PyCharm Opencv - 使用import cv2.cv2自动完成,导入cv2没有错误

时间:2017-06-20 17:51:49

标签: python opencv

我刚刚开始使用pycharm,python和opencv,并且我正在尝试设置我的环境。我已经安装了所有必需的软件包,我就像这样导入opencv:

    1.Customer Class :
    import java.util.ArrayList;

    public class Customer {
        private String name;
        ArrayList<Order> orders = new ArrayList<Order>();

        public Customer(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public ArrayList<Order> getOrders() {
            return orders;
        }

        public void addOrder(Order order) {
            orders.add(order);
        }

    }

    2.LineItem  Class :

    public class LineItem {
        private int quantity;
        Product products;

        public LineItem(int quantity, Product products) {
            this.quantity = quantity;
            this.products = products;
        }

        public double calculateLineItemCost() {
            return (quantity * products.calculatePriceAfterDiscount());
        }

        public int getQuantity() {
            return quantity;
        }

        public Product getProducts() {
            return products;
        }

    }

但是,这不会自动完成并显示警告,调用时该方法可能会丢失,但是如果我这样导入的话:

import cv2

自动完成 可以正常工作,但是运行会产生以下错误:

import cv2.cv2

任何帮助表示赞赏!

7 个答案:

答案 0 :(得分:8)

归功于来自r/learnpython ingolemo 。我被困在这里多年了,它让我发疯,所以我在这里分享。

我的OpenCV是使用包装器opencv-python package

安装的
  

该模块正在进行的黑客攻击的sys.modules是其来源   问题。 Pycharm并没有完全导入模块才能知道   它们里面是什么,所以动态地搞乱了进口   这大大混淆了pycharm。这不是pycharm的错   opencv-python维护者应该使用星号导入而不是   那个混乱的导入黑客。你应该能够解决这个问题   使用你偶然发现的技术。所有你需要做的就是赶上和   忽略正常操作下的错误:

import cv2

# this is just to unconfuse pycharm
try:
    from cv2 import cv2
except ImportError:
    pass

答案 1 :(得分:1)

安装Jedi为我解决了这个问题。 您可以在终端

中使用pip install jedi

您可以在此处找到有关绝地的更多信息:https://pypi.org/project/jedi/

答案 2 :(得分:1)

建议的导入解决方案对我不起作用。 从源代码编译,安装在Conda环境和PyCharm 2020.1中的OpenCV 4.2.0正是我遇到的问题。

我通过这种方式解决了

  1. 选择项目解释器
  2. 单击旁边的设置按钮,然后单击“显示所选解释器的路径”
  3. 添加了包含cv2库的目录(在本例中为Conda Python库路径-例如miniconda3 / lib / python3.7 / site-packages / cv2 / python-3.7)。通常,检查site-packages / cv2 / python-X.X目录)

答案 3 :(得分:1)

我尝试了很多解决方案,最后得到了最好的解决方案。

我刚刚在PyCharm中安装了“ Kite”插件,它运行正常。

我真正喜欢它的是,它适用于您导入的任何模块,还可以帮助您更快地编写代码。

答案 4 :(得分:0)

我遇到了同样的问题

import cv2 as cv2

之后两者都进口甲基

答案 5 :(得分:0)

尝试

try:
     import cv2.__init__ as cv2
 except ImportError:
     pass

答案 6 :(得分:0)

如果使用virtualenv,则在Pycharm项目设置中将virtualenv目录标记为项目结构中排除的目录。