Python3、setuptools、Pip3安装详解

2023-11-09

博客核心内容:

1、Python3安装
2、setuptools安装
3、Pip3安装

之所以写这篇博客,也是有很多原因了,每次安装都要从网上各种百度,网上的答案也是各种各样,于是决定好好总结一下,下面是我在安装的过程中参考的几篇博客,附上相应的链接:
http://www.cnblogs.com/rookie404/p/6142151.html
http://www.cnblogs.com/wenchengxiaopenyou/p/5709218.html
https://seofangfa.com/python-note/setuptools-compression-requires-the-missing-zlib-module.html
http://daiqingyang.blog.51cto.com/1070509/1275432/
好的,接下来进入文章的正题:
linux下安装python3
不建议卸载python2 可能会导致系统内其他软件无法使用.
1、下载
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz
2、解压
tar xvf Python-3.6.0a1.tar.xz
3、编译安装
进入目录Python-3.6.0a1,执行以下两个命令:
./configure
make && make install
4、测试
输入python3:

[root@iz2zea81ksgk8xh72ofrr0z tmp]# python3
Python 3.6.0a1 (default, Aug 19 2017, 14:53:46) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

如果显示上面的内容,说明安装成功。
部分截图:
这里写图片描述


接下来我们来安装setuptools,到这里面遇到了开始遇到坑了。
1、下载
wget –no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
2、解压
tar -zxvf setuptools-19.6.tar.gz

[root@iz2zea81ksgk8xh72ofrr0z software]# ll |grep setuptools-19.6
drwxr-xr-x 10  501 games    4096 Aug 19 17:34 setuptools-19.6
-rw-r--r--  1 root root   641502 Jan 25  2016 setuptools-19.6.tar.gz

3、进入setuptools-19.6编译安装

cd setuptools-19.6.tar.gz

python3 setup.py build

python3 setup.py install

到这里如果你还没有报错的话,说明setuptools已经安装成功了,但是在这里我遇到了一个坑,当我执行python3 setup.py install时出现了错误,报错信息如下:

Compression requires the (missing) zlib module.

出错原因:提示的很清楚,缺少 zlib模块导致安装失败
处理方式:
1、先安装缺少的模块(2行命令)
yum install zlib
yum install zlib-devel
2、下载zlib成功后, cd Python-3.6.0a1的目录,重新执行下面的这个命令:

make && make install

3、重新进入setuptools-19.6目录,再次执行下面的命令:

python3 setup.py install

到这里问题解决,setuptools-19.6安装成功.


接下来我们安装Pip3
1、下载
wget –no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
2、解压
tar -zxvf pip-8.0.2.tar.gz

[root@iz2zea81ksgk8xh72ofrr0z software]# ll |grep pip
drwxr-xr-x  7  501 games    4096 Aug 19 17:44 pip-8.0.2
-rw-r--r--  1 root root  1130183 Aug 19 17:40 pip-8.0.2.tar.gz

3、进入pip-8.0.2目录,编译安装:

cd pip-8.0.2

python3 setup.py build

python3 setup.py install

到这里pip3就安装成功了,可以检查一下:

[root@iz2zea81ksgk8xh72ofrr0z software]# whereis pip3
pip3: /usr/local/bin/pip3 /usr/local/bin/pip3.6

我当时到这里以为安装成功了,但是当执行pip3的时候,报错了,信息如下:

cannot import name HTTPSHandler.

问题:提示的很清楚,缺少 HTTPSHandler模块导致安装失败
处理方式:
1、先安装缺少的模块(2行命令)

yum install openssl
yum install openssl-devel

2、下载 HTTPSHandler成功后, cd Python-3.6.0a1的目录,重新执行下面的这个命令:

make && make install

当我执行完上一行命令之后,出现了下面的日志(部分)

Ignoring indexes: https://pypi.python.org/simple
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
  Found existing installation: setuptools 19.6
    Uninstalling setuptools-19.6:
      Successfully uninstalled setuptools-19.6
  Found existing installation: pip 8.0.2
    Uninstalling pip-8.0.2:
      Successfully uninstalled pip-8.0.2
Successfully installed pip setuptools

从最后一行Successfully installed pip setuptools可以看出,我的setuptools和pip随之跟着也成功了,验证一下:

[root@iz2zea81ksgk8xh72ofrr0z software]# pip3

Usage:   
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  list                        List installed packages.
  show                        Show information about installed packages.
  search                      Search PyPI for packages.
  wheel                       Build wheels from your requirements.
  hash                        Compute hashes of package archives.
  completion                  A helper command used for command completion
  help                        Show help for commands.

General Options:
  -h, --help                  Show help.
  --isolated                  Run pip in an isolated mode, ignoring environment variables and user configuration.
  -v, --verbose               Give more output. Option is additive, and can be used up to 3 times.
  -V, --version               Show version and exit.
  -q, --quiet                 Give less output.
  --log <path>                Path to a verbose appending log.
  --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.
  --retries <retries>         Maximum number of retries each connection should attempt (default 5 times).
  --timeout <sec>             Set the socket timeout (default 15 seconds).
  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
  --trusted-host <hostname>   Mark this host as trusted, even though it does not have valid or any HTTPS.
  --cert <path>               Path to alternate CA bundle.
  --client-cert <path>        Path to SSL client certificate, a single file containing the private key and the
                              certificate in PEM format.
  --cache-dir <dir>           Store the cache data in <dir>.
  --no-cache-dir              Disable the cache.
  --disable-pip-version-check
                              Don't periodically check PyPI to determine whether a new version of pip is available for
                              download. Implied with --no-index.

OK,大功告成!
总结一下注意的点,每次安装完缺少的模块之后,都需要:cd Python-3.6.0a1的目录,重新执行下面的这个命令:

make && make install
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3、setuptools、Pip3安装详解 的相关文章

  • AWS Lambda 错误:无法导入模块“function_name”:没有名为“module._module”的模块

    阅读后请特别查看屏幕截图 我正在 AWS Lambda 上部署一个使用该包的 python 脚本impyla它依赖于包bitarray from impala dbapi import connect 我的Python文件名为authori
  • 存储为 np.arrays 的不同数据集的分组堆积条形图

    我正在研究一个平衡问题 我想比较一些数据 我想通过创建不同年份的堆叠条形图来做到这一点 每年 我想要两个不同数据集的堆叠条形图 我正在尝试创建一种 分组堆积条形图 我设法创建了我想要比较的 2 个堆叠条形图 但它们仍然位于两个不同的图中 我
  • python列表理解和extend() [重复]

    这个问题在这里已经有答案了 深入学习 Python 2 7 1 但未能理解这一点 几个小时 gt gt gt a 1 2 gt gt gt b 3 4 gt gt gt gt gt gt a extend b 0 gt gt gt a 1
  • 是否可以在 SQLAlchemy 中创建一个可以创建父记录的事件侦听器?

    有两个表 父表和子表 我想创建一个事件监听器 触发器 如果孩子没有父母 它可以创建父母 这就是我试图做的 class parent db Model tablename parent id db Column db Integer prim
  • 在 python 中返回 self [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个代表对象的类 我有很多方法可以修改这个对象状态 没有明显的返回或显然没有任何返回 在 C 中 我会将所有这些方法声明为void
  • 使用 boto 和 python 从带有参数的布局创建 mTurk HIT

    我正在尝试利用 boto 在 Mechanical Turk 中生成 HIT 目标是使用我的 mTurk 帐户上已生成的通用布局 并向其传递图像 URL 以迭代创建 HIT 问题是 即使正确命名参数 如果图像 url boto 也不成功 我
  • 多级QTreeView

    我很难理解如何使用 QTreeView 和 QStandardItemModel 设置多级 QTree 这是我所拥有的 from PySide QtGui import import sys class MainFrame QWidget
  • 如何在 PyCharm 中启用 flake8 的自动代码格式化

    我使用 Tox 运行单元测试 并使用 flake8 命令检查代码格式错误 每次我在 PyCharm 中编码时 我都会运行 tox 然后意识到我有一堆烦人的格式错误 我必须返回并手动修复 我希望 PyCharm 自动格式化代码 根据 flak
  • 模拟导入失败

    我该如何制作import pkg失败moduleA py 我可以打补丁pkg如果从中导入某些内容则会失败 否则不会失败 test py import os import moduleA from unittest mock import p
  • Python 字符串参数解析

    我正在 python 中使用 cmd 类 它将所有参数作为一个大字符串传递给我 将此 arg 字符串标记为 args 数组的最佳方法是什么 Example args arg arg1 arg2 with quotes arg4 arg5 1
  • 结束一天(日期时间)的最优雅的方式是什么?

    我目前正在编写一些报告代码 允许用户选择指定日期范围 它的工作方式 简化 是 用户 可选 指定年份 用户 可选 指定月份 用户 可选 指定一天 这是一个代码片段 以及描述我想要的内容的注释like to do from datetime i
  • python中不规则点之间的坐标列表

    想象一下 我们为 x 和 y 随机选择两个介于 0 到 100 之间的点 例如 95 7 35 6 现在使用简单的 pygame draw line 函数 我们可以轻松地在这些点之间绘制一条没有任何间隙的线 我的问题是 我们如何找到两点之间
  • 了解 Tensorflow 中的 while 循环

    我正在使用用于 Tensorflow 的 Python API https www tensorflow org api docs python 我正在努力实施罗森布罗克函数 https www sfu ca ssurjano rosen
  • NumPy 中 exp(-x^2) 的快速傅立叶变换

    I have to calculate numerically the 2nd derivative of a Gaussian function I ve read every question on this topic here bu
  • 为什么这个记忆器适用于递归函数?

    我不明白为什么下面的代码是这样的fib以线性而非指数时间运行 def memoize obj Memoization decorator from PythonDecoratorLibrary Ignores kwargs cache ob
  • Mac OS 上的 pybluez 安装错误

    我尝试安装pybluez使用以下命令 pip install pybluez sudo easy install pybluez 但对于这两个命令我最终都会出错 环境 Mac OSX 10 9 1 Python 2 7 点日志 cc fno
  • Scrapy文件下载如何使用自定义文件名

    For my scrapy http doc scrapy org index html我目前正在使用的项目文件管道 https doc scrapy org en latest topics media pipeline html scr
  • launchd执行python脚本,但导入失败

    我使用 appscript 编写了一个 python 脚本来跟踪我当前活动的窗口 我通过 launchd 运行它 但是当我这样做时 它无法导入 appscript 我已经在 launchd 的 plist 中设置了 PYTHONPATH 但
  • 在大型文本文件中查找重复记录

    我在一台 Linux 机器 Redhat 上 并且有一个 11GB 的文本文件 文本文件中的每一行包含单个记录的数据 并且该行的前 n 个字符包含该记录的唯一标识符 该文件包含略多于 2700 万条记录 我需要验证文件中不存在具有相同唯一标
  • Python list.extend() 是保序的吗?

    我想知道扩展函数是否保留两个列表中的顺序 gt gt list 1 2 3 gt gt list extend 4 5 gt gt list 1 2 3 4 5 扩展总是这样工作吗 Yes list extend just extends给

随机推荐

  • 敏捷--寻求更小发布集

    鱼骨思维 核心主线 优先级模型 差异化功能 具有明显竞争优势的功能特性 搅局功能 瞄准并用于叫板差异化产品的功能特性 快速低价或者强势营销的方式进入市场 降成本功能 可以降低组织成本的功能 基础功能 参与市场竞争的必要性基础功能 mvp理解
  • FFmpeg降低编码延迟记录

    背景 最近使用FFmpeg编码时 264 265的软编和NVIDIA硬编 有不同程序的缓存 具体表现就是调用avcodec send frame多次后才能调用avcodec receive packet一次 自测x264缓存了40帧 h26
  • Linux_Vs2017 error pthread

    解决办法 右键 gt 属性 添加pthread
  • 深入理解python中的None对象

    1 None None是python中的一个特殊的常量 表示一个空的对象 空值是python中的一个特殊值 数据为空并不代表是空对象 例如 等都不是None None和任何对象比较返回值都是False 除了自己 gt gt gt L gt
  • eclipse中将Maven Dependencies Libraries移除后的恢复办法

    参考文章 转载地址 在eclipse中 如果你不小心在properties gt Java Build Path中将Maven Dependencies Libraries 移除了怎么恢复呢 解决办法 1 右键你的项目 gt Maven g
  • 传输层 —— FTP

    一 FTP 二 FTP工作原理
  • C++学习(四九零)add_library生成动态库和静态库

    1 静态库 add library hello library STATIC src hello cpp 2 动态库 注意这里是SHARED 而不是DYNAMIC add library hello library SHARED src h
  • mac下使用docker安装mysql

    拉取mysql镜像 docker pull mysql 拉取完后大致是这样的控制台输出 因为我这里已经拉取过了 这时候我们查看一下镜像是否拉取下来 查看镜像拉取状态 docker container ls 在这里我们可以看到我的镜像是在5天
  • 函数的声明和定义

    C语言中一个完整的函数由函数首部和函数体构成 而且定义函数时两者都是必不可少的 函数声明表示有这么个函数了 函数定义就是具体实现了 举个例子 函数声明 int fun int a int b 函数定义 int fun int a int b
  • 目标跟踪算法三:Modeling and Propagating CNNs in a Tree Structure for Visual Tracking (VOT2016冠军)

    目标跟踪算法三 Modeling and Propagating CNNs in a Tree Structure for Visual Tracking VOT2016冠军 文章链接 https arxiv org pdf 1608 07
  • 跟着英雄刷算法-因式分解和枚举

    补上前天落下的 题目一 int kthFactor int n int k int cnt 0 for int i 1 i lt n i if n i 0 k if 0 k return i return 1 题目二 int closest
  • 使用Keras和深度确定性策略(DDPG)来玩TORCS

    背景 DQN的一大局限性是输出 动作是离散的 而车辆转向是连续的 使DQN适应连续域的一种明显方法是简单的离散化操作空间 然而只是简单地离散化操作空间会受到 维度的诅咒 问题 深度确定性策略由三种技术结合 1 确定性策略梯度算法 输出的是每
  • 由用户反映DroidPilot安装之后,License没有同步安装 - 解决办法

    由用户反映DroidPilot安装之后 License没有同步安装 这个原因是在有些机器的注册表无法正常设置License项引起的的 只需手工重新安装一次License就可以解决 方法如下 1 启动cmd命令行 2 进入脚本设计器安装目录
  • 只保留日期_如何在excel中自动填写日期,以5分钟为增量,批量生成数字

    日期和时间可以自动填充 Excel中的数字除外 日期可以按天 月 年和工作日填充 时间可以按小时 分钟和秒递增填充 填写日期的方法有三种 一种是拖拽自动填写 另一种是双击单元格填写手柄自动填写 第三种是用序列填写大量数据 如填写一年 几年甚
  • 【爬虫】JS逆向解决反爬问题系列4——nonce破解

    欢迎来到我的博客 作者 秋无之地 简介 CSDN爬虫 后端 大数据领域创作者 目前从事python爬虫 后端和大数据等相关工作 主要擅长领域有 爬虫 后端 大数据开发 数据分析等 欢迎小伙伴们点赞 收藏 留言 本次博客内容将讲解关于nonc
  • a标签禁用

    a 链接 a 以上写法不能实现a标签禁用功能 Can t bind to disabled since it isn t a known property of a 正确写法 a href 链接 a href一定要加 不加实现不了置灰 a
  • Kettle是什么(ETL工具)

    1 Kettle是什么 Kettle是一个开源的ETL工具 全称为Pentaho Data Integration PDI 它可以用于从不同的数据源中提取数据 进行转换和加载到目标数据源中 Kettle支持多种数据源的操作 如关系型数据库
  • 【笔记~】使用js实现搜索排序(el-table)

    直接看代码 div div class serchBox div div
  • TAQS.IM Solo v1.2.11 WiN 中东方韵律合成器

    TAQSIM Solo 不仅准备了虚拟合成与采样播放的多层级混合引擎 还为音乐创作者们带来了大量现代世界音乐中的音色 不仅包括合成音色 还有与世界各地音乐家合作带来的乐器音色 比如弦乐器 TAQSIM Solo 采用了三层级合成器引擎 每个
  • Python3、setuptools、Pip3安装详解

    博客核心内容 1 Python3安装 2 setuptools安装 3 Pip3安装 之所以写这篇博客 也是有很多原因了 每次安装都要从网上各种百度 网上的答案也是各种各样 于是决定好好总结一下 下面是我在安装的过程中参考的几篇博客 附上相