我环顾四周,人们似乎也遇到了类似的问题,但是没有一个人能准确描述我的情况,为他们解决的解决方案似乎对我不起作用(或者根本没有答案)。 / p>
使用pycharm,在安装public static String infix2postfix(String infix) throws IOException, SyntaxError
{
Stack<String> operators = new Stack<>();
Queue<String> output = new LinkedList<>();
ArrayList<String> tokens = tokenize(infix);
final String ARGSEP = ",";
for (String tok : tokens) {
if (tok.equals("Ans") || tok.equals("π") || isNumeric(tok))
output.offer(tok);
else if (isUnaryPostfix(tok))
output.offer(tok);
else if (isUnaryPrefix(tok))
operators.push(tok);
else if (isFunc(tok))
operators.push(tok);
else if (tok.equals(ARGSEP)) {
while (!operators.empty() && !operators.peek().equals(LPAREN))
output.offer(operators.pop());
}
else if (isBinary(tok)) {
String a = tok;
if (assocLeft(a)) {
while (!operators.empty() &&
getOpPrec(operators.peek()) >= getOpPrec(a) &&
!operators.peek().equals(LPAREN))
output.offer(operators.pop());
}
else {
while (!operators.empty() &&
getOpPrec(operators.peek()) > getOpPrec(a) &&
!operators.peek().equals(LPAREN))
output.offer(operators.pop());
}
operators.push(a);
}
else if (tok.equals(LPAREN))
operators.push(tok);
else if (tok.equals(RPAREN)) {
while (!operators.empty() && !operators.peek().equals(LPAREN))
output.offer(operators.pop());
if (operators.empty() || !operators.peek().equals(LPAREN))
throw new ParenthesesMismatch();
else
operators.pop();
if (!operators.empty() && isFunc(operators.peek()))
output.offer(operators.pop());
}
}
while (!operators.empty()) {
if (operators.peek().equals(LPAREN) ||
operators.peek().equals(RPAREN))
throw new ParenthesesMismatch();
output.add(operators.pop());
}
return queue2str(output);
}
public static boolean isOperator(String str)
{
switch (str) {
case "^":
case "/":
case "*":
case "+":
case SUB:
case NEG:
case "Mod":
case "!":
case "E":
case "²":
return true;
default:
return false;
}
}
public static boolean isBinary(String str)
{
switch (str) {
case "^":
case "/":
case "*":
case "+":
case SUB:
case "Mod":
case "E":
return true;
default:
return false;
}
}
public static boolean isUnaryPostfix(String str)
{
return str.equals("!") || str.equals("²");
}
public static boolean isUnaryPrefix(String str)
{
return str.equals(NEG);
}
private static int getOpPrec(String str)
{
switch (str) {
case "(":
case ")":
return 7;
case "E":
case "!":
return 5;
case "^":
case "²":
return 4;
case "/":
case "*":
case "Mod":
case NEG:
return 3;
case "+":
case SUB:
return 2;
default:
return 8; /* give functions higher precedence, so they may be
added to the queue */
}
}
private static boolean assocLeft(String str)
{
switch (str) {
case "^":
case "²":
case "E":
case NEG:
return false;
case "/":
case "*":
case "+":
case SUB:
case "Mod":
case "!":
return true;
case "(":
case ")":
return true;
}
return true;
}
和 $.ajax({
type:'get',
url: '{{URL::asset('dashboard/Grafias-Domain-Search')}}',
data:{ id : a },
. . .
之后,我注意到opencv-python
可以工作,但是当我尝试访问opencv-contrib-python
时,pycharm抱怨找不到它。
所以我转到了cv2初始化文件,它看起来像这样:
import cv2
Pycharm在cv2.imread()
行上检测到未解析的引用,并且我想在最后一行上会发生相同的问题-我尝试在python控制台中执行以下操作:
import importlib
from .cv2 import *
from .data import *
# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)
但是我遇到了NameError,这似乎证实了我的怀疑。
正如我写的那样,我曾尝试安装from .cv2 import *
,但似乎没有任何作用,坦率地说,我已经没有想法了。
注意: -我使用的是Windows 10 x64。 -我使用的是Python 3.6 x64。 -我在Pycharm项目上设置了虚拟环境。
答案 0 :(得分:1)
我发现问题出在cv2的__init__.py
如何导入所有内容,即globals().update()
行。
从本质上讲,一切都可以正常工作,但是由于Pycharm不会索引这种调用,因此它不会检测到名称空间已正确导入。因此,解决方案将是忽略“错误”,并且不进行自动补全。
答案 1 :(得分:0)
您是否通过终端安装了opencv?
例如,像这样。
$ pip install opencv-python
$ pip install opencv-contrib-python
我也遇到了同样的问题。
如果使用pycharm,则应通过pycharm安装opencv。
File
-> Settings...
-> Project interpreter
-> +
答案 2 :(得分:0)
我不是专家,但以下几行对我有用:
import cv2.cv2 as cv2
之后一切似乎都可以进行。自动补全功能又回来了
答案 3 :(得分:0)
我遇到了同样的问题。你需要尝试一些事情。