Python上的Python模块错误
我在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输出如下所示:
sys.path输出为Pycharm从快捷方式运行:
/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用于从命令行运行的Pycharm:
/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"
你不要设置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 *
尝试,它应该可以正常工作,如果你没有从这里下载并安装一个,它会给出的唯一错误就是没有许可证
要设置系统范围的访问权限,请先创建
sudo gedit /etc/ld.so.conf.d/gurobi_pi.conf
然后加
/opt/gurobi562/linux64/lib
并保存该文件。
然后输入
sudo ldconfig
更新系统中的库。 您应该可以访问Pycharm中的共享库。
您看到不同的行为,因为在从终端启动PyCharm(或其他编辑器)之前始终加载.bashrc
。 其他快捷方式对你的.bashrc
一无所知,它们不应该。 看来这个模块需要一些非常有趣的配置。
你最好不必每次都使用终端,就是修改你正在使用的快捷方式(这是你自己想出来的)来设置适当的环境变量。 这些变量中最重要的是LD_LIBRARY_PATH
。
export LD_LIBRARY_PATH="/opt/gurobi562/linux64/lib:/usr/local/lib/python2.7/dist- packages/gurobipy"
警告: dist- packages
看起来很奇怪,但我已经将其复制出您的问题。 如果它不起作用,取决于你找出正确的目录名称。
上一篇: Python Module Error on Linux
下一篇: Why does MATLAB/Octave wipe the floor with C++ in Eigenvalue Problems?