CentOS普通用户权限安装matplotlib-python

2024-04-07 06:32

本文主要是介绍CentOS普通用户权限安装matplotlib-python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先,因为自己是普通用户权限,所以,肯定是要先构建自己的Python虚拟环境了。

$ cd Your/virtualenv/folder
$ pip install virtual
$ virtualenv es

接着,启动刚刚构建的python虚拟环境 es

$ source bin/activate

重点内容来啦:),安装matplotlib

(es) $ pip install matplotlib
......

提示信息:

The following required packages can not be built: * freetype, png

多谢万能的CSDN. 参考链接

解决问题:

step 0: 创建存放freetype,libpng相关内容的文件夹

  • 存放安装源码
$ cd ~
$ mkdir pkgs
  • 存放安装内容
$ cd ~
$ mkdir local/freetype -p
$ mkdir local/libpng -p

step 1: 安装freetype

$ cd ~/pkgs/
$ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.6.tar.gz 
$ tar -zxvf freetype-2.6.tar.gz 
$ cd freetype-2.6
$ ./configure --prefix=/home/yourusername/local/freetype
$ make && make install

step 2: 安装libpng

下载地址

把文件复制或移动到 ~/pkgs

$ cd ~/pkgs/
$ tar -zxvf libpng-1.6.21.tar.gz 
$ cd libpng-1.6.21
$ ./configure --prefix=/home/yourusername/local/libpng
$ make && make install

step 3: 更改.bash_profile

$ cd ~
$ vim .bash_profile
export PKG_CONFIG_PATH=/home/yourusername/local/freetype/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/home/yourusername/local/libpng/lib/pkgconfig:$PKG_CONFIG_PATH

立即生效.bash_profile

$ cd ~
$ source .bash_profile

step 4: 启动es虚拟环境,并验证

(es)$ python
(es)>>> import matplotlib.pyplot as plt
......

提示:

ImportError: libpng16.so.16: cannot open shared object file

因为是普通用户权限,所以,我无法按照参考链接中的方法进行操作。

既然,找不到 libpng16.so.16。我先看一下自己~/local/libpng/lib 下是否有改文件。

$ cd ~/local/libpng/lib
libpng16.a  libpng16.la  libpng16.so  libpng16.so.16  libpng16.so.16.21.0  libpng.a  libpng.la  libpng.so  pkgconfig

发现存在该文件,只是没有找到。那样就好办了,之前处理过类似OpenCV3里面的cv2.so。只需修改~/.bash_profile文件,添加libpng16.so.16 的路径即可。

$ cd ~
$ vim .bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/elasticsearch/local/libpng/lib
$ cd ~
$ source .bash_profile

最后,再次启动es虚拟环境,验证matplotlib模块

(es) $ python>>> import matplotlib.pyplot as plt>>>

OK!

这篇关于CentOS普通用户权限安装matplotlib-python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881869

相关文章

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

使用Python实现一个优雅的异步定时器

《使用Python实现一个优雅的异步定时器》在Python中实现定时器功能是一个常见需求,尤其是在需要周期性执行任务的场景下,本文给大家介绍了基于asyncio和threading模块,可扩展的异步定... 目录需求背景代码1. 单例事件循环的实现2. 事件循环的运行与关闭3. 定时器核心逻辑4. 启动与停

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调