我使用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管理器中不会改变任何内容。
非常感谢任何帮助。谢谢
答案 0 :(得分:2)
Pyomo的GLPK界面通过启动glpsol
作为单独的进程来工作。它通过搜索glpsol
环境变量找到PATH
可执行文件。您需要确保glpsol
(在您的情况下为/Users/myusername/anaconda/bin/
)的路径位于Spyder环境的PATH
环境变量中。您可以通过多种方式执行此操作:
Tools
- Current user environment variables
进行编辑。~/.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/'))
注意:PATH
和PYTHONPATH
不相同:PATH
是可执行搜索路径。 PYTHONPATH
是Python用于查找可导入模块的搜索路径。