1

我使用 os x 10.11、anaconda 1.3.1、python 3.5、glpk 4.60、pyomo 5.0.1、spyder 3.0.2。如果我运行一个使用 pyomo 调用 glpk 的脚本,我会收到以下警告和错误:

WARNING:pyomo.solvers:Could not locate the 'glpsol' executable, which is required for solver 'glpk'
ApplicationError: No executable found for solver 'glpk'

如果我通过终端或 jupyter notebook 启动相同的脚本,它运行没有问题。

我使用以下方法安装了 glpk:

conda install -c conda-forge glpk=4.60 

我如何让 glpk 在 spyder 环境中工作?

如果我跑

which glpsol

我明白了

/Users/myusername/anaconda/bin/glpsol

但是将目录添加到 Spyder 中的 PYTHONPATH 管理器不会改变任何内容。

非常感谢任何帮助。谢谢

4

1 回答 1

2

Pyomo 的 GLPK 界面通过glpsol作为一个单独的进程启动来工作。它通过搜索环境变量找到glpsol可执行文件。PATH您需要确保glpsol(在您的情况下/Users/myusername/anaconda/bin/)的路径PATH位于 spyder 环境的环境变量中。您可以通过多种方式执行此操作:

  • [仅限 Windows] 可以在 spyder IDE 中使用Tools-进行编辑。Current user environment variables
  • [仅限 Windows] 您可以在 Windows 中设置用户的 PATH(到选项的路径因版本而异,例如,请参阅Windows 7Windows 8.1
  • [Unix/Linux/MacOS] 你可以编辑你的 shell 初始化(例如,~/.bashrc对于 BASH,~/.cshrc对于 CSH/TCSH)来设置PATH环境变量。
  • [在 Spyder 中] 您可以指定几行 python 代码或一个小脚本,通过 spyder 首选项(Tools- Preferences- IPython console-Startup选项卡将目录添加到 IPython 控制台 PATH 中。你会想要类似的东西:

    import os
    os.environ['PATH'] = os.pathsep.join((os.environ['PATH'], '/Users/myusername/anaconda/bin/'))
    

注意:PATHPYTHONPATH不一样:PATH是可执行文件的搜索路径。 PYTHONPATH是 Python 用来查找可导入模块的搜索路径。

于 2016-12-27T16:45:56.513 回答