3

Python を使用して .xlsm Excel ファイルからデータを読み取っています。ほとんど同じで、同じディレクトリに保存されている 2 つのファイルがあります。Python プログラムに 1 つの Excel シートを渡すと、データが正しく読み取られ、問題が解決されます。ただし、他のExcelシートでは次のエラーが発生します。

(自分の名前を #### で隠しました)

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    solve("updated_excel.xlsm")
  File "C:\Documents and Settings\#####\My Documents\GlockNew.py", line 111, in solve
    prob.solve()
  File "C:\Python27\lib\site-packages\pulp-1.5.4-py2.7.egg\pulp\pulp.py", line 1614, in solve
    status = solver.actualSolve(self, **kwargs)
  File "C:\Python27\lib\site-packages\pulp-1.5.4-py2.7.egg\pulp\solvers.py", line 1276, in actualSolve
    return self.solve_CBC(lp, **kwargs)
  File "C:\Python27\lib\site-packages\pulp-1.5.4-py2.7.egg\pulp\solvers.py", line 1343, in solve_CBC
    raise PulpSolverError, "Pulp: Error while executing "+self.path
PulpSolverError: Pulp: Error while executing C:\Python27\lib\site-packages\pulp-1.5.4-py2.7.egg\pulp\solverdir\cbc.exe

「Pulp: Error while running "+self.path"」が何を意味するのかわかりませんが、両方のファイルが同じディレクトリに保存されており、問題を解決しようとすると問題が発生します。何がそのようなエラーを引き起こす可能性があるかについて、誰にも考えがありますか?

編集

さらにデバッグした後、COIN_CMD クラスの solve_CBC メソッドにエラーがあることがわかりました。ここでエラーが発生します:

if not os.path.exists(tmpSol):
    raise PulpSolverError, "Pulp: Error while executing "+self.path

両方の Excel シートに対してソルバーを実行すると、tmpSol の値は同じです: 4528-pulp.sol

ただし、1 つの Excel シートに対して実行すると、os.path.exists(tmpSol) は true を返し、もう一方のシートに対しては false を返します。be-tmpSol が 2 回とも同じ値になるにはどうすればよいでしょうか。

4

2 に答える 2

1

名前はプロセス ID を使用して作成されます。1 つのプロセスから両方のソルバー アプリケーションを起動する何らかのバッチ ジョブがある場合、それらは同じ名前になります。

于 2014-03-27T16:01:42.023 に答える