Ipython 在Linux上的Enthound树冠编辑器中使用Gurobi解算器

Ipython 在Linux上的Enthound树冠编辑器中使用Gurobi解算器,ipython,enthought,gurobi,Ipython,Enthought,Gurobi,我目前正在使用python处理Gurobi解算器。以前,我只是混合使用文本编辑器和终端来编写和运行我的模型,但目前我正在尝试使用Enthound Canopy编辑器。当我在终端中使用python model.py运行时,我有一个模型可以工作,但当我尝试在Canopy的iPython外壳中执行%run model.py时,我得到: %run /home/cdhagmann/Copy/Code_Env/Farmer/model.py ---------------------------------

我目前正在使用python处理Gurobi解算器。以前,我只是混合使用文本编辑器和终端来编写和运行我的模型,但目前我正在尝试使用Enthound Canopy编辑器。当我在终端中使用
python model.py
运行时,我有一个模型可以工作,但当我尝试在Canopy的iPython外壳中执行
%run model.py
时,我得到:

%run /home/cdhagmann/Copy/Code_Env/Farmer/model.py
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/home/cdhagmann/Canopy/appdata/canopy-1.0.1.1189.rh5-x86_64/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    181             else:
    182                 filename = fname
--> 183             __builtin__.execfile(filename, *where)

/home/cdhagmann/Copy/Code_Env/Farmer/model.py in <module>()
----> 1 from gurobipy import *
      2 from data_IO import read_data,currency
      3 import time
      4 
      5 # Import model data

ImportError: No module named gurobipy
%run/home/cdhagmann/Copy/code\u Env/Farmer/model.py
---------------------------------------------------------------------------
ImportError回溯(最近一次呼叫最后一次)
/执行文件中的home/cdhagmann/Canopy/appdata/Canopy-1.0.1.1189.rh5-x86_64/lib/python2.7/site-packages/IPython/utils/py3compat.pyc(fname,*其中)
181其他:
182 filename=fname
-->183 _u内置的_uuu.execfile(文件名,*其中)
/home/cdhagmann/Copy/Code_Env/Farmer/model.py in()
---->1来自gurobipy导入*
2从数据输入读取数据,货币
3导入时间
4.
5#导入模型数据
ImportError:没有名为gurobipy的模块
我的猜测是,航站楼和顶棚在不同的地方寻找模块,但我不知道如何纠正它。我在Gurobi group的网站上找到了这个参考资料,但我不知道这些说明与在Linux上使用它有多大区别,甚至不知道他在Canopy的网站包中安装Gurobi的意思

更新:根据我点击的第一个链接中找到的信息,事实上,我确实将框中的链接保留为默认目录。您必须手动预加PATH变量,我没有听到他们说我必须这样做。所以我就这么做了。现在,我的终端中运行了Canopy版本的iPython(使用sys.path进行检查);然而,当我尝试运行python时,我得到了一个巨大的错误列表

cdhagmann@Crispin ~ $ python
Traceback (most recent call last):
  File "/usr/lib/python2.7/site.py", line 563, in <module>
    main()
  File "/usr/lib/python2.7/site.py", line 545, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python2.7/site.py", line 272, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/lib/python2.7/site.py", line 247, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/lib/python2.7/site.py", line 237, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/lib/python2.7/sysconfig.py", line 578, in get_config_var
    return get_config_vars().get(name)
  File "/usr/lib/python2.7/sysconfig.py", line 505, in get_config_vars
    import re
  File "/usr/lib/python2.7/re.py", line 105, in <module>
    import sre_compile
  File "/usr/lib/python2.7/sre_compile.py", line 14, in <module>
    import sre_parse
  File "/usr/lib/python2.7/sre_parse.py", line 17, in <module>
    from sre_constants import *
  File "/usr/lib/python2.7/sre_constants.py", line 18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT
cdhagmann@Crispin~$python
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.7/site.py”,第563行,在
main()
文件“/usr/lib/python2.7/site.py”,第545行,在main中
已知路径=addusersitepackages(已知路径)
addusersitepackages中的文件“/usr/lib/python2.7/site.py”,第272行
user\u site=getusersitepackages()
getusersitepackages中的文件“/usr/lib/python2.7/site.py”,第247行
user_base=getuserbase()#这也将设置user_base
getuserbase中的文件“/usr/lib/python2.7/site.py”,第237行
USER\u BASE=get\u config\u var('userbase')
文件“/usr/lib/python2.7/sysconfig.py”,第578行,在get\u config\u var中
返回get_config_vars().get(name)
文件“/usr/lib/python2.7/sysconfig.py”,第505行,在get\u config\u vars中
进口稀土
文件“/usr/lib/python2.7/re.py”,第105行,在
导入sre_编译
文件“/usr/lib/python2.7/sre_compile.py”,第14行,在
导入sre_解析
文件“/usr/lib/python2.7/sre_parse.py”,第17行,在
从sre_常量导入*
文件“/usr/lib/python2.7/sre_constants.py”,第18行,在
从_sre导入MAXREPEAT
ImportError:无法导入名称MAXREPEAT
建议

回答@Jonathan的问题:

sys.prefix
=
'/usr'

系统路径

  • /usr/lib/python2.7
  • /usr/lib/python2.7/plat-x86_64-linux-gnu
  • /usr/lib/python2.7/lib-tk
  • /usr/lib/python2.7/lib old
  • /usr/lib/python2.7/lib-dynload
  • /usr/local/lib/python2.7/dist包
  • /usr/lib/python2.7/dist包
  • /usr/lib/python2.7/dist-packages/PILcompat
  • /usr/lib/python2.7/dist-packages/gtk-2.0
  • /usr/lib/pymodules/python2.7
  • /usr/lib/python2.7/dist-packages/ubuntu-sso-client

gurobipy.\uuu文件\uuuu
=
'/usr/local/lib/python2.7/dist packages/gurobipy/gurobipy.so'

如果终端正确配置了Canopy Python,那么终端中的Python和Canopy Python应该在相同的位置查找模块。若在安装过程中,您禁用了“make Canopy be default Python”,或者自安装后还并没有重新启动终端,那个么它将不会自动正确配置

这些文章应有助于您理解和配置:

若这些文章不足以解决这个问题,那个么请报告——当您从终端运行python时,这些是什么

sys.prefix
sys.path
gurobipy.__file__

我照文章上说的做了。我现在在终端上有了Canopy版本的iPython(用sys.path检查),但如果我现在尝试运行python,它会带来大量错误。我不知道为什么它不让我@you,@Jonathan,但还有什么想法吗?没有细节,“错误的数量”没有提供任何分析。我用“错误的数量”编辑了这个问题Jonathan说,因为我无法在评论区找到。我还包括了
sys.prefix
sys.path
,以及
gurobipy.\uuuuuu文件
,这是你想要的。