title: puLP solver error
body: <p>I am trying to solve MILP in puLP (Python), and I keep getting the following error: </p>
  
  <pre><code>Traceback (most recent call last):
    File "main_lp.py", line 63, in &lt;module&gt;
      ans = solve_lp(C)
    File "/home/ashwin/Documents/Williams/f2014/math317_or/project/solve_lp.py", line 36, in solve_lp
      prob.solve()
    File "/usr/local/lib/python2.7/dist-packages/PuLP-1.5.6-py2.7.egg/pulp/pulp.py", line 1619, in solve
      status = solver.actualSolve(self, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/PuLP-1.5.6-py2.7.egg/pulp/solvers.py", line 1283, in actualSolve
      return self.solve_CBC(lp, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/PuLP-1.5.6-py2.7.egg/pulp/solvers.py", line 1346, in solve_CBC
      raise PulpSolverError("Pulp: Error while executing "+self.path)
  pulp.solvers.PulpSolverError: Pulp: Error while executing /usr/local/lib/python2.7/dist-packages/PuLP-1.5.6-py2.7.egg/pulp/solverdir/cbc-32
  </code></pre>
  
  <p>For my linear programming problem, I am attempting to take sums of different vectors as the constraint, and I think I must have done that wrong somehow, because a much simpler problem works with no hitches. I have attached the code (<code>C</code> is an N by N <code>numpy</code> array). </p>
  
  <pre><code>def solve_lp(C):
      N = len(C)
      prob=LpProblem('Scheduling',LpMinimize)
  
      X = [[LpVariable('X' + str(i+1) + str(j+1), 0, C[i,j],LpBinary)
            for j in range(N)] for i in range(N)]
      X = np.array(X)
      X_o = [LpVariable('X0' + str(i), 0, None, LpBinary) for i in range(N)]
      X_t = [LpVariable('X' + str(i) + 't', 0, None, LpBinary) for i in range(N)]
  
      # Objective Function                                                                                                                                                
      ones_vec = list(np.ones(len(X_o)))
      prob += lpDot(ones_vec,X_o), 'Minimize Buses'
  
      # Constraints                                                                                                                                                       
      for i in range(N):
          row = list(X[i,:]) + [X_t[i]]
          ones_vec = list(np.ones(len(row)))
          prob += lpDot(ones_vec, row) == 1, 'Only one destination for ' + str(i)
  
      for j in range(N):
          col = list(X[:,j]) + [X_o[j]]
          ones_vec = list(np.ones(len(col)))
          prob += lpDot(ones_vec,col) == 1, 'Only one source for ' + str(j)
  
      prob.solve()
      return X, value(prob.objective)
  </code></pre>