当前位置: 首页 > 知识库问答 >
问题:

Linux上的Python模块错误

寇甫
2023-03-14

我正在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输出:

/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安装,它在/usr/local/lib/python2.7中创建了gurobipy文件夹

4) 将以下行添加到.bashrc

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

共有2个答案

曾永新
2023-03-14

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

你最好不要每次都使用终端,修改你正在使用的快捷方式(这取决于你自己)来设置合适的环境变量。这些变量中最重要的是LD_LIBRARY_PATH

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

警告:dist-packages看起来很奇怪,但我已经从您的问题中复制了它。如果它不起作用,则由您自己决定正确的目录名。

孙乐逸
2023-03-14

你不设置通往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并尝试从gurobipy导入*中执行,它应该可以正常工作,如果您没有从此处下载并安装许可证,它将给出的唯一错误是没有许可证

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

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

然后加上

/opt/gurobi562/linux64/lib

并保存文件。

然后进入

sudo ldconfig

更新整个系统的库。您应该可以访问Py魅力中的共享库。

 类似资料:
  • 问题内容: 我想在linux中找到一个易于使用的OCR python模块,我发现pytesser http://code.google.com/p/pytesser/,但是它包含一个.exe可执行文件。 我尝试过更改代码以使用wine,它确实有效,但是它太慢了,真的不是一个好主意。 有没有像它一样易于使用的Linux替代品? 问题答案: 您可以只包装一个函数: 如果您希望文档分割和更多高级功能,请

  • 我看了它的例子,但没有发现。我在linux Ubuntu(PopOs)上使用python3,sudo apt get安装python3 tk dit不工作 Traceback(最近的调用最后):文件"Test.py",第3行,在导入tkinterModuleNotFoundError: No模块命名'tkinter'

  • 问题内容: 如何在模块上的类上实现等价于a 的等效项? 例 当调用模块的静态定义属性中不存在的函数时,我希望在该模块中创建一个类的实例,并使用与该模块上的属性查找失败相同的名称调用该方法。 这使: 问题答案: 你在这里遇到两个基本问题: 方法只在类上查找 (1)意味着任何解决方案还必须跟踪正在检查的模块,否则每个模块将具有实例替换行为;(2)表示(1)甚至是不可能的……至少不是直接的。 幸运的是,

  • 我是Python新手,我想在我的应用程序中导入tweepy。我运行此代码(取自Tweepy官方文档): 它返回此错误: 回溯(最近一次调用):文件“C:/Users/user/PycharmProjects/TwitterPythonAnalytics/file3.py”,第1行,在导入tweepy文件“C:\Users\user\PycharmProjects\TwitterPythonAnal

  • 问题内容: 我一直在使用python dns模块。我试图在新的Linux安装上使用它,但该模块未加载。我试图清理并安装,但安装似乎无法正常进行。 更新了python版本和pip版本命令的输出 非常感谢你的帮助。 注意:-我在新计算机上安装了防火墙。我不确定它是否会影响导入。但我试图禁用它,但它似乎仍然无法正常工作。 问题答案: 我遇到了与dnspython相同的问题。 我的解决方案是从他们的官方G

  • 问题内容: 我的Linux机器上有Python2.6.5和Python2.4.4。 目前,我拥有的所有模块(wx,ply,pyserial,twisted,仅举几例)均已安装为2.6版本的python。如果我尝试使用Python2.4,则会收到预期的无模块错误。 这里的问题是,我有很多设备(比如说超过一千个)都在运行2.4.4,这将很快需要由这台机器支持(用于构建代码,发行版等)。到目前为止,我一