【问题标题】:Python Module Error on LinuxLinux 上的 Python 模块错误
【发布时间】:2014-06-30 08:08:08
【问题描述】:

我在 Linux Mint 16 上使用 python 2.7。如果我从程序启动器(例如,从 Alt F2 的提示符或我的桌面)模块没有加载,我收到以下错误

文件“/usr/local/lib/python2.7/dist-packages/gurobipy/__init__.py”,第 1 行,在 从 .gurobipy 导入 * ImportError:libgurobi56.so:无法打开共享对象文件:没有这样的文件或目录

但是,如果我从命令行运行程序,模块会正确加载并且程序运行良好。我只安装了每个 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/无标题8']

从命令行运行 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/无标题8']

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"

【问题讨论】:

  • 您是否在 .bashrc 文件中添加了必要的行?
  • 是的 export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib/python2.7/dist-packages/gurobipy"
  • 下载包并运行下载中的 setup.py
  • 你把文件解压到哪里了?
  • 已编辑答案并遵循安装过程

标签: python linux pycharm linux-mint spyder


【解决方案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 中的共享库。

【讨论】:

  • 我已经尝试过了,无论有没有 gurobipy 的路径,它都可以在 python shell 中正常工作。问题是当 IDE 从快捷方式运行时
  • 当你从 bash 运行 pycharm 时它在 pycharm 中运行是吗?
  • 是的,当pycharm从bash运行时运行
  • 作为一个小评论 - 如果您下载较新的版本,文件夹 /opt/gurobi562/linux64 可能不存在。用你解压的任何版本替换 562
  • 这很棒。这是什么黑魔法?我添加到该文件夹​​的所有内容都会更新还是什么?
【解决方案2】:

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

不必每次都使用终端的最佳选择是修改您正在使用的快捷方式(由您自己决定)以设置正确的环境变量。这些变量中最重要的是LD_LIBRARY_PATH

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

警告:dist- packages 看起来很奇怪,但我已将其复制到您的问题之外。如果它不起作用,则由您决定正确的目录名称是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 2020-05-02
    • 2020-04-10
    • 2013-03-23
    • 2015-08-01
    相关资源
    最近更新 更多