Spyder没有找到glpsol

时间:2016-12-27 14:04:39

标签: python macos spyder glpk pyomo

我使用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笔记本启动相同的脚本,它运行没有问题。

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

conda install -c conda-forge glpk=4.60 

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

如果我跑

which glpsol

我得到了

/Users/myusername/anaconda/bin/glpsol

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

非常感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:2)

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

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

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

注意:PATHPYTHONPATH不相同:PATH是可执行搜索路径。 PYTHONPATH是Python用于查找可导入模块的搜索路径。