如何在spyde IDE/python上调试此代码

如何在spyde IDE/python上调试此代码,python,ipython,anaconda,spyder,gurobi,Python,Ipython,Anaconda,Spyder,Gurobi,亲爱的 我是一名研究生,也是spyder软件的新用户 我通过python语言编程使用这个程序,我花了很长的时间学习python和spyder,以便能够插入我的代码 但我遇到了一些错误,我试图解决它,我成功了,但其中一些我尝试了,但我不知道是什么问题 所以,我很高兴有这么一个庞大的社区来邀请像你这样受人尊敬的专家,我希望支持我解决这个问题,因为我在我的学院里没有任何向导知道这个软件 方程#2中的误差 范围(1,3)内b的: #创建约束 m、 addConstr(quicksum(x[b,j,t]>

亲爱的

我是一名研究生,也是spyder软件的新用户

我通过python语言编程使用这个程序,我花了很长的时间学习python和spyder,以便能够插入我的代码

但我遇到了一些错误,我试图解决它,我成功了,但其中一些我尝试了,但我不知道是什么问题

所以,我很高兴有这么一个庞大的社区来邀请像你这样受人尊敬的专家,我希望支持我解决这个问题,因为我在我的学院里没有任何向导知道这个软件

方程#2中的误差

范围(1,3)内b的
:
#创建约束
m、 addConstr(quicksum(x[b,j,t]>>runfile('C:/Users/Ahmed/AppData/Roaming/Microsoft/Windows/Network Shortcuts/operating_roomintegrated.py',wdir='C:/Users/Ahmed/AppData/Roaming/Microsoft/Windows/Network Shortcuts'))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\ProgramData\Anaconda2\lib\site packages\spyder\utils\site\sitecustomize.py”,第866行,在runfile中
execfile(文件名、命名空间)
文件“C:\ProgramData\Anaconda2\lib\site packages\spyder\utils\site\sitecustomize.py”,执行文件第87行
exec(编译(脚本文本,文件名,'exec'),glob,loc)
文件“C:/Users/Ahmed/AppData/Roaming/Microsoft/Windows/Network Shortcuts/operating_roomintegrated.py”,第31行

m、 addConstr(quicksum(x[b,j,t]作为Python编程的一般建议,请始终注意编译器错误,尤其是stacktrace的最后一行:

缩进错误:应为缩进块

请检查您的代码:您有一些缩进问题,这对于Python来说是非常关键的,因为它限定了范围(您可能对此感兴趣)

此外,正如您所说,您正在使用Spyder,您可以尝试运行:
Source->Fix Indentation,删除尾随空格。

作为Python编程的一般建议,请始终注意编译器错误,尤其是stacktrace的最后一行:

缩进错误:应为缩进块

请检查您的代码:您有一些缩进问题,这对于Python来说是非常关键的,因为它限定了范围(您可能对此感兴趣)

此外,正如您所说,您正在使用Spyder,您可以尝试运行:
Source->修复缩进,删除尾随空格。

非常感谢您的支持,但我遇到了另一个错误非常感谢您的支持,但我遇到了另一个错误
for b in range(1,3):
    #create constraints
m.addConstr(quicksum(x[b,j,t] <=1 for j in J for t in range(r[b],(d[b]-p[b]+1))),name="block_allocation")    #eqution 2 
>>> runfile('C:/Users/Ahmed/AppData/Roaming/Microsoft/Windows/Network Shortcuts/operating_roomintegrated.py', wdir='C:/Users/Ahmed/AppData/Roaming/Microsoft/Windows/Network Shortcuts')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)
  File "C:\ProgramData\Anaconda2\lib\site-packages\spyder\utils\site\sitecustomize.py", line 87, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)
  File "C:/Users/Ahmed/AppData/Roaming/Microsoft/Windows/Network Shortcuts/operating_roomintegrated.py", line 31
    m.addConstr(quicksum(x[b,j,t] <=1 for j in J for t in range(r[b],(d[b]-p[b]+1))),name="block_allocation")    #eqution 2 
    ^
IndentationError: expected an indented block
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 02 19:36:07 2017

@author: Ahmed
"""

from gurobipy import*
try:
    m = Model('operating_room')
    #Data
    b= [1,2,3]
    n= [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]
    j= [1,2,3,4,5,6,7,8,9,10,11,12,13]
    t=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]
    W=0.5
    p[b]= 15
    h[b]= [1,2,3]
    m.update()
    #create variables
    X[j] =m.addVar(vtype=GRB.BINARY, name="X[j]")
    Y[n] =m.addVar(vtype=GRB.BINARY, name="Y[n]")
    x[b,j,t] = m.addVar(vtype=GRB.BINARY,name="x[b,j,t]") 
    y[n,b] = m.addVar(vtype=GRB.BINARY,name="y[n,b]")
    m.update()
    #set objective
    m.setObjective(quicksum(X[j] for j in J )+ W*(quicksum(Y[n] for n in N)),GRB.MINIMIZE)  #eqution 1

    for b in range(1,3):
    #create constraints
    m.addConstr(quicksum(x[b,j,t] <=1 for j in J for t in range(r[b],(d[b]-p[b]+1))),name="block_allocation")    #eqution 2 
    #equation 3
    for b in range(1,b):
          for j in J:
              for t in T:
    m.addConstr(x[b,j,t] <= X[j] ,name="allocation_to_open_OR")
    #equation 4
    for j in J:
        for t in T:
    m.addConstr(quicksum(x[b,j,l]<=1 for b in range(1:B) for l in range(t-p[b]+1:t)),name="overlaping_blocks")        
    #equation 5
    for b in range(1:B):
    m.addConstr(quicksum(y[n,b]=h[b],for n in N),name="surgical_nurse_demand")    
    #equation 6
    for n in N:
        for b in range(1:B):
    m.addConstr(y[n,b]<=Y[n],name="used_surgical_nurses")  
    #equation 7
    for b,b1 in range(1:B):
        for n in N:
            for t in T:
    m.addConstr(quicksum(x[b,j,l],for j in J for l in range(t-p[b]+1:t)) + quicksum(x[b1,j,l] <= (3-y[n,b]-y[n,b1]),for j in J
    for l in range(t-p[b1]+1:t)),name="link to scheduling")  
    #equation 8   
    for b in range(1:B):
        for j in J:
            for t in T:
    m.addConstr(x[b,j,t] in {0,1},name="integerity_1")          
    #equation 9
    for j in J:
    m.addConstr(X[j] in {0,1},name="integerity_2")                   
    #equation 10
    for b in range(1:B):
        for n in N:
    m.addConstr(y[n,b] in {0,1},name="integerity_3")            
    #equation 11     
    for n in N:
    m.addConstr(Y[n] in {0,1},name="integerity_4")                   
    #equation 12
    for n in N:
        for b,b1 in range(1:B):
            for o[b]!= o[b1]:
    m.addConstr(y[n,b]+y[n,b1]<=1,name="assignment_of_nurses_in_different_OR")
    #equation 13           
    m.addConstr(max(s[b],s[b1])<min(s[b]+p[b],s[b1]+p[b1]),name="prevent_overlapping_in_diff_OR")
    m.optimize()