我刚刚开始使用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
任何帮助表示赞赏!
答案 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)
答案 2 :(得分:1)
建议的导入解决方案对我不起作用。 从源代码编译,安装在Conda环境和PyCharm 2020.1中的OpenCV 4.2.0正是我遇到的问题。
我通过这种方式解决了
答案 3 :(得分:1)
答案 4 :(得分:0)
我遇到了同样的问题
import cv2 as cv2
之后两者都进口甲基
答案 5 :(得分:0)
尝试
try:
import cv2.__init__ as cv2
except ImportError:
pass
答案 6 :(得分:0)
如果使用virtualenv,则在Pycharm项目设置中将virtualenv目录标记为项目结构中排除的目录。