当python模块(cairo)成功安装但未能在python中导入时,会出现什么问题?

当python模块(cairo)成功安装但未能在python中导入时,会出现什么问题?,python,macos,installation,pycharm,cairo,Python,Macos,Installation,Pycharm,Cairo,当python模块安装成功但未能在python中导入(通过PyCharm IDE)时,会出现什么问题?在这种情况下以及将来安装模块但以后无法导入时,我应该遵循什么检查表来诊断问题 对于这个特定的例子,我为Python安装了一个名为cairo的向量图形模块。 请参阅下面的成功安装: sudo python setup.py install cairo >= 1.8.8 detected creating pycairo.pc creating src/config.h running in

当python模块安装成功但未能在python中导入(通过PyCharm IDE)时,会出现什么问题?在这种情况下以及将来安装模块但以后无法导入时,我应该遵循什么检查表来诊断问题

对于这个特定的例子,我为Python安装了一个名为cairo的向量图形模块。

请参阅下面的成功安装:

sudo python setup.py install
cairo >= 1.8.8 detected
creating pycairo.pc
creating src/config.h
running install
running build
running build_ext
running install_lib
creating /Library/Python/2.7/site-packages/cairo
copying build/lib.macosx-10.9-intel-2.7/cairo/_cairo.so -> /Library/Python/2.7/site-packages/cairo
running install_data
creating /System/Library/Frameworks/Python.framework/Versions/2.7/include/pycairo
copying src/pycairo.h -> /System/Library/Frameworks/Python.framework/Versions/2.7/include/pycairo
copying pycairo.pc -> /System/Library/Frameworks/Python.framework/Versions/2.7/lib/pkgconfig
running install_egg_info
Writing /Library/Python/2.7/site-packages/pycairo-1.8.8-py2.7.egg-info
一切似乎都进展顺利,但后来在Python中调用此模块时未能导入:
ImportError:没有名为cairo的模块

一种可能是它安装在错误的目录中-
/Library/Python/2.7/site packages/
。 另一种可能性是,我应该以某种方式明确地告诉python模块的位置。i、 e.:
/Library/Python/2.7/site-packages/cairo
,基于上述安装脚本的输出

这很奇怪,因为cairo出现在
/Library/Python/2.7/site-packages/
中,并且我能够导入在同一目录中找到的其他库,例如PIL

根据aIKID的建议,我尝试使用pip获得已安装的软件包。从中,我得到了一个很长的列表,包括一个名为pycairo的模块。我尝试导入pycairo和cairo,但仍然出现导入错误。有趣的是,“cairo”可以在
/Library/Python/2.7/site packages/cairo
中找到,但“pycairo”是在调用
pip.get\u installed\u distributions()之后找到的。似乎这个发行版名为pycairo,模块名为cairo。导入cairo应该可以工作,但无论哪种方式,两个导入都会失败

根据克里斯托弗的建议,我检查了
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
目录,没有找到cairo。出于同样的原因,我没有找到PIL(python图像库)。我仍然能够导入PIL,它可以在cairo和
/Library/Python/2.7/site-packages/
中找到

Python 2.7.5 (default, Aug 25 2013, 00:04:04) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL, cairo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cairo
Python 2.7.5(默认,2013年8月25日00:04:04)
[GCC 4.2.1达尔文兼容苹果LLVM 5.0(clang-500.0.68)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口皮尔,开罗
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为cairo的模块

您可以运行python交互模式,只需执行以下步骤即可确认库路径:

Python 2.7.5 (default, Mar  9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path
<module 'posixpath' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/posixpath.pyc'>
Python 2.7.5(默认,2014年3月9日,22:15:05)
[GCC 4.2.1达尔文兼容苹果LLVM 5.0(clang-500.0.68)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入操作系统
>>>操作系统路径
如您所见,
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
是我的系统中的路径


您可能有多个python版本,但您可以通过这样做来确认您正在使用哪个版本。

不,我认为应该是这样的。重新启动shell了吗?重新启动shell是否意味着启动一个新的python实例?我重新启动了pycharm IDE,但没有运气,我在终端中启动了一个新的oython实例,没有运气。您安装了pip吗?查看您在pycharm中使用的解释器?在terminal和pycharm中导入失败。我在这两个版本中都使用了python 2.7。这也是我得到的--。尽管如此,在失败后直接导入cairo,并使用“ImportError:没有名为cairo的模块”检查cairo是否存在于/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/谢谢!!越来越近-你是对的,它不存在那里。那么,如果它位于/Library/Python/2.7/site-packages/中,而不是位于/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/中,这意味着什么呢?python映像库中的PIL就是这种情况,但我仍然可以成功导入PIL。可能安装脚本在OS X中工作不正常。一个快速的解决方案可能是在path dir中创建符号链接。否则,您可能会在导入之前编写sys.path.insert(0,“/library/python/2.7/site packages”),但是,您的程序在其他系统上的可移植性较差。