Python Module Error on Linux

馋奶兔 提交于 2019-12-04 08:36:43

问题


I am using python 2.7 on Linux Mint 16. I am facing an error, if I run my IDE (tried it on Spyder and Pycharm) from a program launcher (eg. from the prompt at Alt F2 or an icon shortcut on my desktop) the modules do not load and I get the following error

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

However, if I run the program from the command line the modules load correctly and the program runs fine. I have only one installation each of the IDEs. The sys.path output from the two instances are as follows:

sys.path output for Pycharm run from shortcut:

/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'] 

sys.path oyutput for Pycharm run from command line:

/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']

The package gurobipy is in /usr/lib/python2.7/dist-packages

Installation procedure followed for gurobi package:

1) Untarred the download to /opt/gurobi562/linux64

2) Added following lines to .bashrc

export GUROBI_HOME="/opt/gurobi562/linux64"

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

export LD_LIBRARY_PATH="${GUROBI_HOME}/lib"

3) In /opt/gurobi562/linux64 ran python setup.py install this created the gurobipy folder in /usr/local/lib/python2.7

4) Added the following line to .bashrc

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

回答1:


You don't set the path to the gurobipy.

Download then untar to /opt.

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

Add following to ~/.bashrc.

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

From bash type source ~/.bashrc

start ipython shell and try from gurobipy import *, it should work fine, the only error it will give is about not having a licence if you have not downloaded and installed one from here

To set system wide access, first create

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

Then add

/opt/gurobi562/linux64/lib

and save the file.

Then enter

sudo ldconfig

to update the libs across the system. You should have access to the shared libs in Pycharm.




回答2:


You are seeing different behaviour because your .bashrc is always loaded before you launch PyCharm (or other editors) from the terminal. The other shortcuts know nothing of your .bashrc and they should not. It seems that this module requires some very interesting configuration.

Your best bet to not have to use the terminal every time is to modify the shortcuts you're using (which is up to you to figure out) to set the proper environment variables. The most important of these variables is the LD_LIBRARY_PATH.

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

Warning: the dist- packages seems odd but I've copied it out of your question. If it doesn't work, it's up to you to figure out what the right directory name is.



来源:https://stackoverflow.com/questions/23617898/python-module-error-on-linux

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!