2016-12-27 321 views
0

我使用os x 10.11,anaconda 1.3.1,python 3.5,glpk 4.60,pyomo 5.0.1,spyder 3.0.2。 如果我運行它使用pyomo調用GLPK我碰到下面的警告和錯誤以股代息:Spyder找不到glpsol

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

如果我通過終端或運行沒有問題的jupyter筆記本啓動相同的腳本。

conda install -c conda-forge glpk=4.60 

我要如何GLPK的Spyder的environement內工作:

我使用安裝GLPK?

如果我運行

which glpsol 

我得到

/Users/myusername/anaconda/bin/glpsol 

但添加到目錄內的Spyder的PYTHONPATH經理不會改變任何東西。

任何幫助,高度讚賞。謝謝

+0

請從終端啓動Spyder,然後重試。這可能有幫助。 –

+0

感謝這有助於解決我的問題! –

回答

1

Pyomo的GLPK接口通過啓動glpsol作爲一個單獨的過程工作。它通過搜索PATH環境變量找到glpsol可執行文件。您需要確保路徑glpsol(在您的案例/Users/myusername/anaconda/bin/中)位於spyder環境的PATH環境變量中。您可以通過多種方式做到這一點:

  • [僅限於Windows]可以使用Tools編輯此 - 在Spyder的IDE Current user environment variables
  • [僅限於Windows]您可以設置窗口(該選項的路線變化因版本中用戶的路徑,例如,看到Windows 7Windows 8.1
  • [Unix/Linux操作系統/ MacOS的]你可以編輯你的shell初始化(例如,~/.bashrc爲BASH,~/.cshrc爲CSH/TCSH)設置PATH環境變量存在。
  • [內的Spyder]您可以指定的Python代碼或一個小的腳本幾行,增加了目錄的IPython控制檯PATH通過spyder首選項(Tools - Preferences - IPython console - Startup選項卡。Yo ü想是這樣的:

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

注:PATHPYTHONPATH是不一樣的:PATH是可執行文件的搜索路徑。 PYTHONPATH是Python用於查找可導入模塊的搜索路徑。

+0

如果我從anaconda導航器啓動spyder,此建議對我無效。但這似乎是導航儀本身的問題。如果我從終端開始Spyder(如Carlos在評論中所建議的那樣),PATH變量似乎有通往glpsol的路徑。 –