2013-06-22 55 views
0

我目前與使用python的Gurobi求解器一起工作。以前,我剛剛使用文本編輯器和終端的組合來編寫和運行我的模型,但我正在嘗試使用Enthought Canopy Editor。我有一個模型,它的作品,當我使用python model.py在終端運行,但是當我嘗試在樹冠的IPython的殼做%run model.py我得到:在Linux的Enthought Canopy編輯器中使用Gurobi求解器

%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 

我的猜測是,終端和林冠尋找在不同的地方模塊但我不知道如何糾正它。我在Gurobi小組網站上發現了關於Enthought Canopy and Gurobi on OS X 10.8的這個參考,但不知道這些指令與Linux上的指令有什麼不同,甚至不知道他在Canopy的站點包中安裝Gurobi的含義。

更新:基於找到的信息,我點擊了第一個鏈接,實際上離開盒裝點擊使Canopy成爲我的默認目錄。您必須手動添加PATH變量,我錯過了他們說我必須這樣做。所以我做到了。我現在在我的終端中運行了Canopy的iPython版本(使用sys.path檢查);然而,當我嘗試運行python時,我得到了一大堆錯誤。

[email protected] ~ $ 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 

建議?

並回答@Jonathan問題:

sys.prefix = '/usr'

sys.path

  • /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-packages
  • /usr/lib/python2.7/dist-packages
  • /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.__file__ = '/usr/local/lib/python2.7/dist-packages/gurobipy/gurobipy.so'

回答

1

如果終端爲Canopy Python正確配置,那麼終端和Canopy中的python Python應該在相同的地方尋找模塊。如果在安裝過程中,您禁用了「使Canopy成爲默認Python」,或者如果您在安裝後沒有重新啓動終端,那麼它將不會自動正確配置。

這些文章可以幫助你理解和配置:

http://docs.enthought.com/canopy/configure/faq.html#where-are-all-of-the-python-packages-in-my-user-python-environment

https://support.enthought.com/entries/23646538-Make-Canopy-s-Python-be-your-default-Python-i-e-on-the-PATH-

https://support.enthought.com/entries/23389761-Installing-packages-into-Canopy-Python-from-the-command-line

如果這些文章不足夠爲你解決這個問題,那麼請報告 - 當你從終端運行python,這是什麼?

sys.prefix 
sys.path 
gurobipy.__file__ 
+0

我做了它在文章中所說的。我現在在終端中使用了Canopy的iPython版本(使用sys.path進行檢查),但是如果我現在嘗試運行python,它會引發一系列錯誤。 – cdhagmann

+0

我不知道爲什麼它不會讓我@你,@喬納森,但有更多的想法? – cdhagmann

+0

沒有詳細信息,「錯誤」不會給任何分析。 –

相關問題