python3.7的安装与遇到的问题

实验组项目需求,需要使用 Python + Virtualenv + Django + Postgressql等。将使用的过程以及遇到的问题记录下来,作为备份和分享。

安装

Ubuntu系统自带的原有的 python 版本不支持项目需求,需使用 3.7版本。查找博客进行了安装过程。将自己安装过程以及遇到的问题作为记录,以备后用。

环境:

  • ubuntu 18.04
  • python 3.7

准备工作(常规下载解压)

  • 下载 python3.7 的源代码:
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
  • 解压缩文件
tar -zxvf Python-3.7.3.tgz 
  • 创建文件夹来存储 python 3.7 程序
 mkdir /usr/local/python3 

编译安装

  • 若要对 python 的源代码进行编译首先安装 gcc 编译工具
sudo apt install gcc

此外还需要安装一堆的支持与依赖:(参照网上大家安装的内容)。不同人的系统缺少的可能不同。如果缺少什么,建议自行百度搜索安装。本人只安装了如下的

  sudo apt-get install build-essential python-dev python-setuptools libpq-dev
  sudo apt install python-smbus build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev
  • 打开加压后的 python 文件夹,进行编译与安装
sudo ./configure --prefix=/usr/local/python371 --enable-optimizations  # 将程序安装在指定的文件夹中
make    # 编译
sudo make install   # 安装

编译和安装,如果没有error,那么就安装成功了。

配置与测试

由于自带的 python 版本不是 3.7 ,需要进行配置,使终端在执行 python3的时候,默认调用 python 3.7 。

  • 建立软连接:
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
  • 测试
$ python3
Python 3.7.3 (default, Jun  2 2020, 03:13:27) 
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

版本若是显示的你下载的版本,则安装无误。

python 3.7 的安装过程如上结束了。下一章节记录一下安装 python 3.7 和使用 pip3 的时候遇到的一些问题。

遇到的问题(踩到的坑)

make install 时候的问题

  • ModuleNotFoundError: No module named ‘_ctypes的错误。(缺少依赖没有安装)

解决方法:

sudo apt install libffi-devel

python3中有个内置模块叫ctypes,它是python3的外部函数库模块,提供了兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用centos7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在centos7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named ‘_ctypes’"的错误。
————————————————
版权声明:本文为CSDN博主「海棠未满」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36416904/article/details/79316972

pip3

subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.

解决方法:

sudo rm /usr/bin/lsb_release

版本替换完成后:

执行 apt-get update命令:出现如下问题:

Traceback (most recent call last):
  File "/usr/lib/cnf-update-db", line 8, in <module>
    from CommandNotFound.db.creator import DbCreator
  File "/usr/local/python/lib/python3.7/CommandNotFound/db/creator.py", line 11, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
E: Sub-process returned an error code

解决方法参照下文:

  • 解决更换python版本出现 ModuleNotFoundError: No module named 'apt_pkg’等错误
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值