当python模块(cairo)安装成功但无法导入python时,可能是什么问题?

问题描述 投票:0回答:1

当Python模块安装成功但无法导入Python(通过PyCharm IDE)时,可能是什么问题?在这种情况下以及将来当模块安装但后来无法导入时,我应该遵循什么清单来诊断问题?

对于这个特定案例,我安装了一个名为 cairo 的 Python 矢量图形模块。 http://cairographics.org/releases/pycairo-1.8.8.tar.gz

看到下图表示安装成功:

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: No module named cairo

一种可能是它安装在错误的目录中 -

/Library/Python/2.7/site-packages/
。 另一种可能性是我应该以某种方式明确告诉 python 模块的位置。即:
/Library/Python/2.7/site-packages/cairo
,基于上面找到的安装脚本的输出。

这很奇怪,因为 cairo 存在于

/Library/Python/2.7/site-packages/
中,并且我能够导入其他库,例如在同一目录中找到的 PIL。

enter image description here

根据aIKID的建议,我尝试使用pip来获取已安装的软件包。由此,我得到了一个很长的列表,其中包括一个名为 pycairo 的模块。我尝试导入 pycairo 和 cairo,但仍然出现导入错误。有趣的是,“cairo”是在

/Library/Python/2.7/site-packages/cairo
中找到的,但是“pycairo”是在调用
pip.get_installed_distributions()
之后找到的。好像发行版叫pycairo,模块叫cairo。 import cairo 应该可以工作,但无论哪种方式导入都会失败。

enter image description here

根据Christopher的建议,我检查了

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
目录,没有找到cairo。同样的道理,我也没有找到PIL(python 成像库)。我仍然可以导入 PIL,它可以在
/Library/Python/2.7/site-packages/
中与 cairo 一起找到。

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 macos installation pycharm cairo
1个回答
0
投票

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

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

如您所见,

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
是我系统中的路径。

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

© www.soinside.com 2019 - 2024. All rights reserved.