centos 安装python PIL模块

本文详细介绍了在CentOS系统中安装Python的PIL模块及其替代品Pillow的方法。包括通过yum安装所需的依赖库,手动编译安装JPEG和zlib库,以及修改配置文件等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

centos 安装python PIL模块

1、安装

 

使用yum安装缺少类库:

#尤其重要,否则会报错
yum install python-devel

yum install libjpeg libjpeg-devel zlib zlib-devel freetype freetype-devel lcms lcms-devel
yum install python-imaging

测试:

#解压
tar xvfz Imaging-1.1.7.tar.gz    
python setup.py build_ext -i

如果报缺少类库则手动安装:

下载资源:

http://www.pythonware.com/products/pil/index.htm 下载最新版的PIL安装程序 tar xfz Imaging-1.1.7.tar.gz
http://www.ijg.org 下载jpeg库jpegsrc.v8b.tar.gz
http://www.gzip.org/zlib/ 下载zlib-1.2.5.tar.gz支持压缩功能的zlib库

#我安装9a失败,安装的8b
tar -zxf jpegsrc.v8b.tar.gz
cd jpeg-8b
./configure && make && make test && make install
 tar xfz zlib-1.2.5.tar.gz
 cd zlib-1.2.5
./configure && make && make install

修改配置后安装image

复制代码
#修改配置文件setup.py
TCL_ROOT = "/usr/lib/"    
JPEG_ROOT = "/usr/lib/"    
ZLIB_ROOT = "/usr/lib/"    
TIFF_ROOT = "/usr/lib/"    
FREETYPE_ROOT = "/usr/lib/"   
LCMS_ROOT = "/usr/lib/"

#安装
python setup.py install
复制代码

 

问题:

1、the imaging c module is not installed[5]

yum install python-imaging

 

 

 

参考:

[1] 64位CentOS下安装python的PIL模块.http://www.360doc.com/content/12/1103/21/8827884_245560257.shtml

[2] 64位centos下安装python的PIL模块.http://www.xuebuyuan.com/1397145.html

[3] python Image模块安装.http://blog.163.com/longsu2010@yeah/blog/static/173612348201193112324679/

[4] Linux 64位系统安装Python PIL模块.http://wangyou871228.blog.163.com/blog/static/27695152201361922011718/

[5] PIL will not import the _imaging C module: “*** The _imaging C module is not installed”.http://stackoverflow.com/questions/4113095/pil-will-not-import-the-imaging-c-module-the-imaging-c-module-is-not-ins



补充一点,一般都是用pillow来代替pil的,不过pillow的核心也是pil,

安装如下:

安装pillow出现以下问题:


ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting

----------------------------------------
Cleaning up...
Command /usr/local/bin/python -c"import setuptools, tokenize;__file__='/tmp/pip_build_root/pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('rn', 'n'), __file__, 'exec'))"install --record /tmp/pip-SviNMc-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/pillow
Storing debug log for failure in /root/.pip/pip.log

StackOverflow: http://stackoverflow.com/questions/34631806/fail-during-installation-of-pillow-python-module-in-linux

解决:

sudo yum install python-devel
sudo yum install zlib-devel
sudo yum install libjpeg-turbo-devel

然后就可以:

pip install pillow

了。

知识共享许可协议
<think>我们正在讨论如何安装Python3的特定组件或版本,例如名为"python3-xyz"的包。根据用户的问题,他们可能想要安装一个特定的Python模块或某个Python版本的附加组件。在Linux系统中,通常可以通过包管理器来安装这些组件。 然而,需要注意的是,"python3-xyz"中的"xyz"是一个占位符,代表具体的模块名。例如,如果用户想要安装Python3的pip工具,那么包名可能是"python3-pip"。 根据引用[1]中提供的脚本,我们可以看到它通过编译源代码的方式安装Python3.6.4,并设置了pip的镜像源。但用户可能更倾向于使用系统包管理器来安装预编译的包,因为这样更简单且易于管理。 下面我将提供两种常见的方法: 1. 使用系统包管理器(如yum或apt)安装特定的python3模块。 2. 使用pip安装特定的Python模块。 另外,如果用户需要安装特定版本的Python(如Python3.6),我们也可以提供方法。 由于用户的问题中提到了“python3-xyz”,我假设这是在类Debian系统(如Ubuntu)中常见的包命名方式,或者在CentOS/RHEL中也有类似的命名(如python36-xxx)。因此,我们需要区分不同的Linux发行版。 步骤: 一、使用系统包管理器安装 对于Debian/Ubuntu系统: ```bash sudo apt update sudo apt install python3-xyz # 将xyz替换为实际的包名,例如python3-numpy ``` 对于CentOS/RHEL系统: ```bash sudo yum install python3-xyz # 注意:在CentOS中,包名可能是python3X-xyz,其中X是次版本号 ``` 但是,在CentOS/RHEL中,默认可能只安装Python2,如果需要安装Python3,可能需要先启用EPEL仓库(如引用[1]中所示),然后安装python3。例如,安装Python3.6: ```bash sudo yum install epel-release sudo yum install python36 ``` 然后,安装Python版本对应的模块,包名通常为`python3-<模块名>`或`python36-<模块名>`。例如: ```bash sudo yum install python36-pip ``` 二、使用pip安装 如果系统包管理器中没有提供所需的模块,或者用户需要最新版本,可以使用pip安装。 首先,确保已经安装了pip。对于Python3,通常可以通过以下命令安装pip: ```bash sudo apt install python3-pip # Debian/Ubuntu # 或者 sudo yum install python3-pip # CentOS/RHEL ``` 然后,使用pip3安装特定的模块: ```bash pip3 install xyz # 将xyz替换为模块名 ``` 三、安装特定版本的Python 如果用户需要安装特定版本的Python(如Python3.6),在Ubuntu上可以使用deadsnakes PPA,在CentOS上可以通过SCL(Software Collections)或者编译安装。 Ubuntu: ```bash sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.6 ``` CentOS: 启用SCL仓库(CentOS7): ```bash sudo yum install centos-release-scl sudo yum install rh-python36 # 安装Python3.6 ``` 激活环境: ```bash scl enable rh-python36 bash ``` 或者,也可以像引用[1]中那样通过源代码编译安装。 四、注意事项 1. 在安装特定版本的Python时,注意系统可能会同时存在多个Python版本,使用时要明确版本(如使用python3.6命令)。 2. 使用pip安装模块时,可能需要指定版本,例如:`pip3 install numpy==1.18.5`。 由于用户的问题中提到了“python3-xyz”,我建议用户首先尝试使用系统包管理器安装,如果找不到,再考虑使用pip。 示例:安装Python3的numpy模块 使用apt: ```bash sudo apt install python3-numpy ``` 使用yum(假设系统默认python3版本是3.6): ```bash sudo yum install python36-numpy ``` 或者使用pip3: ```bash pip3 install numpy ``` 最后,如果用户是在Windows系统上,则通常使用pip来安装模块,或者下载预编译的二进制包。 由于用户之前的引用都是关于Linux的(使用了yum),我们假设用户使用的是Linux系统。 生成相关问题: §§相关问题§§ 1. 如何检查系统上已安装Python版本? 2. 如何为特定Python版本安装pip? 3. 如何创建Python虚拟环境? 4. 如何卸载通过pip安装模块? 5. 如何解决安装Python模块时的依赖问题?</think>### 安装 Python3 特定组件或版本(如 Python3-xyz)的完整指南 在 Linux 系统中安装特定 Python 组件(如 `python3-xyz`)或版本,需根据系统包管理器和组件类型选择合适方法。以下是具体操作步骤: --- #### 🔧 方法 1:通过系统包管理器安装(推荐) **适用于 Debian/Ubuntu 系统:** ```bash # 更新软件源 sudo apt update # 搜索可用组件(将 xyz 替换为实际组件名) apt search python3-xyz # 安装组件(示例:安装 Python3 开发包) sudo apt install python3-dev # [^1] ``` **适用于 CentOS/RHEL 系统:** ```bash # 启用 EPEL 仓库(如引用[1]所示) sudo yum install epel-release # 安装组件(示例:安装 Python3 pip) sudo yum install python3-pip # [^1] ``` --- #### 📦 方法 2:使用 pip 安装 Python 模块 当组件是 Python 库(如 numpy/pandas)时: ```bash # 安装特定模块(将 xyz 替换为模块名) pip3 install xyz # 安装指定版本(示例:安装 requests 2.25.1) pip3 install requests==2.25.1 # 从阿里云镜像加速安装(如引用[1]配置) pip3 install -i http://mirrors.aliyun.com/pypi/simple/ xyz ``` --- #### 🐍 方法 3:编译安装特定 Python 版本 当需要特定 Python 版本(如 Python 3.6.4)时: ```bash # 下载源码(如引用[1]方法) wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz # 解压并编译 tar -xvf Python-3.6.4.tar.xz cd Python-3.6.4 ./configure --prefix=/usr/local/python3.6 make -j$(nproc) sudo make install # 创建符号链接 sudo ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python36 ``` --- #### 💡 关键技巧 1. **查找准确包名**: ```bash # Debian/Ubuntu apt-cache search python3 | grep xyz # CentOS/RHEL yum search python3 | grep xyz ``` 2. **虚拟环境隔离**: ```bash python3 -m venv myenv # 创建虚拟环境 source myenv/bin/activate # 激活环境 pip install xyz # 安装组件不污染系统 ``` 3. **验证安装**: ```python # Python 终端验证 import xyz print(xyz.__version__) ``` --- #### ⚠️ 常见问题解决 1. **依赖缺失错误**: ```bash # 安装开发工具链(如引用[1]) sudo yum install gcc zlib-devel openssl-devel ``` 2. **权限问题**: ```bash # 使用 --user 避免系统权限 pip3 install --user xyz ``` 3. **多版本共存**: ```bash # 通过 update-alternatives 管理版本 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --config python3 ``` --- #### 🌐 不同组件的安装示例 | 组件类型 | 安装命令 | 说明 | |----------------|-----------------------------------|--------------------------| | **开发工具** | `sudo apt install python3-dev` | 包含头文件和静态库 [^1] | | **数据库驱动** | `pip3 install mysqlclient` | MySQL 连接库 | | **图像处理** | `pip3 install pillow` | 替代 PIL 模块 [^3] | | **科学计算** | `sudo apt install python3-numpy` | NumPy 数组库 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值