0

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

%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

我的猜测是终端和 Canopy 在不同的地方寻找模块,但我不知道如何纠正它。我在 Gurobi 组网站上找到了有关 OS X 10.8 上的 Enthought Canopy 和 Gurobi 的参考资料,但不知道这些指令与在 Linux 上执行它有多大不同,甚至不知道他在 Canopy 的站点包中安装 Gurobi 的意思。

更新:根据我点击的第一个链接找到的信息,我确实留下了框住的点击,使 Canopy 成为我的默认目录。您必须手动添加 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

建议?

并回答@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'

4

1 回答 1

1

如果终端为 Canopy Python 正确配置,则终端中的 python 和 Canopy 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-ie-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__
于 2013-06-24T01:02:12.193 回答