【问题标题】:Spyder does not find glpsolSpyder 找不到 glpsol
【发布时间】:2017-05-11 19:51:48
【问题描述】:

我使用 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 管理器中不会改变任何内容。

非常感谢任何帮助。谢谢

【问题讨论】:

  • 请从终端启动 Spyder 并重试。这可能会有所帮助。
  • 感谢这帮助并解决了我的问题!

标签: python macos spyder glpk pyomo


【解决方案1】:

Pyomo 的 GLPK 界面通过将glpsol 作为一个单独的进程启动来工作。它通过搜索PATH 环境变量找到glpsol 可执行文件。您需要确保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 初始化(例如,~/.bashrc 用于 BASH,~/.cshrc 用于 CSH/TCSH)以在此处设置 PATH 环境变量。
  • [在 Spyder 中] 你可以指定几行 python 代码或一个小脚本,通过 spyder 首选项 (Tools-Preferences-IPython console-Startup选项卡。你会想要这样的东西:

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

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

【讨论】:

  • 如果我从 anaconda 导航器启动 spyder,这个建议对我不起作用。但这似乎是导航器本身的问题。如果我从终端启动 spyder(正如 Carlos 在评论中建议的那样),PATH 变量似乎有 glpsol 的路径。
猜你喜欢
  • 2013-01-01
  • 2018-04-03
  • 2018-08-17
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2018-11-28
  • 2021-12-13
相关资源
最近更新 更多