2015-10-05 47 views
1

我最近更新到OSX El Capitain升级exhisting工作osx安装。现在我有一个模块,通过pip安装在anaconda发行版上,现在已经损坏。或者更好的模块可以从蟒蛇ipython无法加载python模块

Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, Sep 15 2015, 14:29:08) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Anaconda is brought to you by Continuum Analytics. 
Please check out: http://continuum.io/thanks and https://anaconda.org 
>>> import MDSplus as mds 

正确导入,而不会在IPython中加载,声称不找到一个图书馆。

Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, Sep 15 2015, 14:29:08) 
Type "copyright", "credits" or "license" for more information. 

IPython 4.0.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 
Using matplotlib backend: MacOSX 

In [1]: import MDSplus as mds 
Error importing MDSplus package: Error finding library: MdsShr 

该库已正确安装,它在/ etc/profile文件中列出,它位于/ usr /本地(所以不应该有与OSX EL船长的新的安全系统出现问题)和python解释了通过python或ipython调用的是相同的(Anaconda 2.3.0)。 我该如何诊断哪个是问题?

编辑: 在https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/PEuOKEM5fdc建议的解决方案不适合我。它似乎没有成为一个环境问题,并命令

echo $DYLD_LIBRARY_PATH 

指向正确的路径

编辑:

which -a ipython 
ipython is /Users/vianello/anaconda/bin/ipython 
which -a python 
python is /Users/vianello/anaconda/bin/python 
python is /usr/bin/python 

>>> import sys 
>>> for x in sys.path: print x 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/pyhht-0.0.1-py2.7.egg 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/MitDevices-0.3-py2.7.egg 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/MDSplus-alpha_7.0.157-py2.7.egg 
>>>//anaconda/lib/python2.7/site-packages/MDSplus-alpha_7.0.147-py2.7.egg/MDSplus 
>>>/Users/vianello/anaconda/lib/python27.zip 
>>>/Users/vianello/anaconda/lib/python2.7 
>>>/Users/vianello/anaconda/lib/python2.7/plat-darwin 
>>>/Users/vianello/anaconda/lib/python2.7/plat-mac 
>>>/Users/vianello/anaconda/lib/python2.7/plat-mac/lib-scriptpackages 
>>>/Users/vianello/anaconda/lib/python2.7/lib-tk 
>>>/Users/vianello/anaconda/lib/python2.7/lib-old 
>>>/Users/vianello/anaconda/lib/python2.7/lib-dynload 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/PIL 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/Sphinx-1.3.1-py2.7.egg 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/aeosa 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/lmfit-0.8.3-py2.7.egg 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/setuptools-18.3.2-py2.7.egg 
>>>/Users/vianello/anaconda/lib/python2.7/site-packages/suds-0.4-py2.7.egg 

在IPython中同样给出结果

/Users/vianello/anaconda/bin 
/Users/vianello/anaconda/lib/python2.7/site-packages/pyhht-0.0.1-py2.7.egg 
/Users/vianello/anaconda/lib/python2.7/site-packages/MitDevices-0.3-py2.7.egg 
/Users/vianello/anaconda/lib/python2.7/site-packages/MDSplus-alpha_7.0.157-py2.7.egg 
/Users/vianello/anaconda/lib/python27.zip 
/Users/vianello/anaconda/lib/python2.7 
/Users/vianello/anaconda/lib/python2.7/plat-darwin 
/Users/vianello/anaconda/lib/python2.7/plat-mac 
/Users/vianello/anaconda/lib/python2.7/plat-mac/lib-scriptpackages 
/Users/vianello/anaconda/lib/python2.7/lib-tk 
/Users/vianello/anaconda/lib/python2.7/lib-old 
/Users/vianello/anaconda/lib/python2.7/lib-dynload 
/Users/vianello/anaconda/lib/python2.7/site-packages/Sphinx-1.3.1-py2.7.egg 
/Users/vianello/anaconda/lib/python2.7/site-packages/lmfit-0.8.3-py2.7.egg 
/Users/vianello/anaconda/lib/python2.7/site-packages/setuptools-18.3.2-py2.7.egg 
/Users/vianello/anaconda/lib/python2.7/site-packages/suds-0.4-py2.7.egg 
/Users/vianello/anaconda/lib/python2.7/site-packages 
/Users/vianello/anaconda/lib/python2.7/site-packages/PIL 
/Users/vianello/anaconda/lib/python2.7/site-packages/aeosa 
/Users/vianello/anaconda/lib/python2.7/site-packages/IPython/extensions 
/Users/vianello/.ipython 

因此MDSplus-alpha_7.0.157-py2.7.egg可以从Python和ipython

+0

写在Python和库路径的报告是我没有和提出的解决方案没有解决的问题,即增加了PYTHONPATH没有解决您的权利,我有问题 –

+0

编辑问题抱歉 –

+0

您是否正在从virtualenv运行ipython? –

回答

1

我的第一个想法是,您正与新的Apple系统完整性保护发生冲突。 iPython使用通过/bin/bash加载的shell脚本启动。这会导致你的DYLD_LIBRARY_PATH环境变量在python启动时被剥离。您可以通过导入os然后尝试打印os.environ["DYLD_LIBRARY_PATH"]的内容来检查。如果该打印引发异常,那么你知道问题是什么。

对我而言,一个简单的修复方法是编辑ipython脚本的第一行,以便#!直接调用您的python二进制文件,而不是通过bash进行。这不是一个长期的解决方案,因为每次更新ipython直到上游更改(公平地说,我不确定为什么涉及bash)时都必须重做。

我在http://dmtn-001.lsst.io