首页 文章

Linux上的Python模块错误

提问于
浏览
9

我在Linux Mint 16上使用python 2.7 . 如果我从程序启动器运行我的IDE(在Spyder和Pycharm上试过),我将面临一个错误(例如,从Alt F2的提示或桌面上的图标快捷方式)模块没有加载,我收到以下错误

File "/usr/local/lib/python2.7/dist-packages/gurobipy/__init__.py", line 1, in 
    from .gurobipy import *
ImportError: libgurobi56.so: cannot open shared object file: No such file or directory

但是,如果我从命令行运行程序,模块正确加载,程序运行正常 . 我每个IDE只安装一个 . 两个实例的sys.path输出如下:

pycharm的sys.path输出从快捷方式运行:

/home/XXXXXX/bin/pycharm-community-3.1.3/helpers/pydev', '/usr/local/lib/python2.7/dist-packages/pip-1.5.5-py2.7.egg', '/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', '/home/XXXXXX/PycharmProjects/untitled8']

从命令行运行的pycharm的sys.path oyutput:

/home/XXXXXX/bin/pycharm-community-3.1.3/helpers/pydev', '/usr/local/lib/python2.7/dist-packages/pip-1.5.5-py2.7.egg', '/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', '/home/XXXXXX/PycharmProjects/untitled8']

gurobipy包位于/usr/lib/python2.7/dist-packages中

gurobi包的安装程序如下:

1)将下载解压缩到/ opt / gurobi562 / linux64

2)在.bashrc中添加以下行

export GUROBI_HOME="/opt/gurobi562/linux64"

export PATH="${PATH}:${GUROBI_HOME}/bin"

export LD_LIBRARY_PATH="${GUROBI_HOME}/lib"

3)在/ opt / gurobi562 / linux64中运行python setup.py install,在/usr/local/lib/python2.7中创建了gurobipy文件夹

4)在.bashrc中添加以下行

export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib/python2.7/dist-   packages/gurobipy"

2 回答

  • 1

    您没有设置gurobipy的路径 .

    下载然后解压缩到 /opt .

    cd to `/opt/gurobi562/linux64` and run `python setup.py install`
    

    将以下内容添加到 ~/.bashrc .

    export GUROBI_HOME="/opt/gurobi562/linux64"
       export PATH="${PATH}:${GUROBI_HOME}/bin"
       export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${GUROBI_HOME}/lib"
    

    从bash类型 source ~/.bashrc

    启动ipython shell并尝试 from gurobipy import * ,它应该可以正常工作,如果你没有从here下载并安装了一个许可证,它将给出的唯一错误就是没有许可证

    要设置系统范围的访问权限,请先创建

    sudo gedit /etc/ld.so.conf.d/gurobi_pi.conf
    

    然后加

    /opt/gurobi562/linux64/lib
    

    并保存文件 .

    然后输入

    sudo ldconfig
    

    更新整个系统的库 . 您应该可以访问Pycharm中的共享库 .

  • 15

    您会看到不同的行为,因为在从终端启动PyCharm(或其他编辑器)之前,始终会加载 .bashrc . 其他快捷方式对你的 .bashrc 一无所知,他们不应该这样做 . 看来这个模块需要一些非常有趣的配置 .

    您最好不必每次都使用终端来修改您正在使用的快捷方式(由您决定)以设置适当的环境变量 . 这些变量中最重要的是 LD_LIBRARY_PATH .

    export LD_LIBRARY_PATH="/opt/gurobi562/linux64/lib:/usr/local/lib/python2.7/dist-   packages/gurobipy"
    

    警告: dist- packages 似乎很奇怪,但我工作,你可以找出正确的目录名称 .

相关问题