[空两格]昨天憨批室友搁我面前装b,说他会用pip安装Python包了,说是安装wxPython的时候通过换源解决了之前安装出错的问题。我一听,这事不对劲啊,是这个b直接看不懂输出了吧。果然,我让他在虚拟机里给我演示了一下,没想到这个b新换的源是一个国外的源,网速只有几十K???下载了一大会都没下载完,意思没到错误的地方就不算报错呗。然后我又让他换回了清华源,下载完包以后过了几分钟就提示编译出错了。但是吧,他不看编译报错,就直接百度ubuntu安装wxPython,也不想知道每步是干啥的,正好这问题还挺常见的,闲着就写一下。

  


最开始的就是pip的换源了,网上很多,基本就俩办法,一个是改~/.pip/pip.conf文件,一个是用pip config set index-url命令。然后吧pip其实有两个index-url,一个是index-url,一个是extra-index-url,相当于一个主,一个是备用,具体的东西其实都能用pip install --help看。linux下的命令基本都可以用--help查看帮助,多用--help比百度好使多了,也更方便。得,我把清华源的连接贴一下pip更换源为清华源


改了源以后下载速度是上去了,接下来就是Python包的安装了,Python的包有的是纯python的,有的是需要使用第三方二进制库的(主要是c/c++的库)。

纯Python的话就安装几个Python文件就行,有依赖的话就把依赖的Python文件已安装也就完事了。


主要是涉及到第三方二进制库的时候会麻烦一点点,因为要涉及到一些代码编译,会接触到configure或者cmake,编译的时候因为每个人系统环境不一样,会有一些编译错误。编译的错误基本就两种,一种是二进制库缺少需要的二进制依赖库,就拿这个wxPython来说吧,他在ubuntu下就依赖gtk+3的开发文件,一般你不使用gtk开发图形界面的话你的系统里可能就没有这个开发包。拿configure举例吧,依赖库不存在的出错信息一般就如下所示:

configure: error:

The development files for GTK+ were not found. For GTK+ 2, please ensure that pkg-config is in the path and that gtk+-2.0.pc is installed.
For GTK+ 1.2 please check that gtk-config is in the path, and that the version is 1.2.3 or above.
Also check that the libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config --libs' are in the LD_LIBRARY_PATH or equivalent.

这种带not found的就是configure编译前找不到依赖库gtk+,安装这种依赖库呢,一般就是两种方法

方法1:下载源码,自己编译,不过这对于只用python的人有点麻烦,因为需要涉及到configure , gcc ,主要是一些编译的东西

方法2:直接使用系统的包管理器,就拿常用的ubuntu举例吧,apt-get或者apt 都行,具体这种依赖库在包管理器叫啥名字就得你去百度搜一下了,每个发行版下的包管理中的包名都不太一样,找到包名一个就apt install 包名,一般的情况下linux下的开发包都是带一个-dev后缀的,比如这个libgtk+-3-dev这样。

既然说到apt奥,因为ubuntu官方源实在是太慢了,所以一般都会换成国内源,换apt的源就很简单了,用root权限打开/etc/apt/sources.list这个文件,把里面的https连接换成国内的就行,一般就用清华源或者中科大的源就行。不过因为时间太久,apt的认证可能过期了,这时候就得需要先把sources.list里面的https改成http,然后安装一下ca-certificates这个库,然后再把http改回https,这样就可以开心的继续用国内源的https链接了(安全又卫生),别憨批的再把源换成ubuntu官方的了奥。

依赖解决完以后基本就没啥事了,编译完以后pip会把Python文件和依赖库都放到site-packages下。

然后呢,还有个方法,有时候你也懒得去编译了,懒得去解决这个问题了,毕竟编译也挺费时间的,百度搜来搜去也怪累的,你就直接把别人的python包复制到你系统上python的site-packages里就行了,简单粗暴,也能解决问题。就比如wxPython这个包在Python的site-packages里的名字是wx,里面又个METADATA的文件,里面有一些Requires这种东西,就是这个包的依赖包,把这些东西也复制过去,保证你的包可以安全又卫生的运行(前提是这些依赖你的python没有安装)。

Python安装wxPython和ubuntu使用apt提示不能更新的更多相关文章

  1. [python]安装wxpython的时候遇到问题记录

    一.安装wxpython的时候报错 “no installation of python 2.7 found in registy” 解决方案: win7上,已经安装python27,但是在安装wxp ...

  2. 安装Docker到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.5 LTS 软件版本:Docker-CE-18.09.5 硬件配置:无 安装过程 1.卸载旧版本 root@ubuntu:~# sudo apt-get ...

  3. 安装PHP到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.2 LTS 软件版本:PHP-5.6 硬件要求:无 安装过程 1.安装APT存储库 APT存储库由PPA提供. root@localhost:~# apt ...

  4. 安装MongoDB到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.5 LTS 软件版本:mongodb-org-4.0.8 硬件要求:无 安装过程 1.配置APT-Mongodb存储库 ATP-Mongodb存储库由Mo ...

  5. 安装MYSQL到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.6 LTS 软件版本:MYSQL-5.7 硬件要求:无 安装过程 1.安装APT-MYSQL存储库 APT-MYSQL存储库由MYSQL官网提供.选择安装 ...

  6. 安装Jenkins到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.4 LTS 软件版本:Jenkins-2.176.2 硬件要求:最低内存:256MB.磁盘:1GB 安装过程 1.配置APT-Jenkins存储库 APT ...

  7. 安装Zabbix到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.2 LTS 软件版本:Zabbix-4.0.2 硬件要求:无 安装过程 1.安装APT-Zabbix存储库 APT-Zabbix存储库由Zabbix官网提 ...

  8. 安装Gitlab到Ubuntu(APT)

    运行环境 系统版本:Ubuntu 16.04.6 LTS 软件版本:Gitlab-ce-11.10.1 硬件要求:最低2核4GB,建议4核8GB 安装过程 1.安装依赖 root@localhost: ...

  9. 关于Ubuntu下apt的一些用法及和yum的比较

    Fedora和Red Hat有yum安装软件,Ubuntu有apt工具. apt简单的来说,就是给Ubuntu安装软件的一种命令方式. 一.apt的相关文件 /etc/apt/sources.list ...

随机推荐

  1. Solution -「POI 2014」「洛谷 P5904」HOT-Hotels 加强版

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个点的树,求无序三元组 \((u,v,w)\) 的个数,满足其中任意两点树上距离相等.   \(n\le1 ...

  2. Windows微信清理工具v.3.0.1

    Windows微信清理工具v.3.0.1 今天,我原创的Windows微信清理工具迎来最大更新! v.3.0.0更新内容: 1.使用tkinter重构GUI,界面更简单易用! 2.增加"清理 ...

  3. 关于IDA无法从symbol server下载pdb的问题

    在ida目录下,symsrv.dll同目录下创建一个symsrv.yes文件. symsrv.yes将可下载: symsrv.no将失败: 没有相关文件将会弹出授权询问,选择yes和no将创建对应文件 ...

  4. 用 JuiceFS 备份 Nginx 日志可以这么简单

    在我们线上的生产环境中要备份的东西很多,各种服务日志.数据库数据.用户上传数据.代码等等.用 JuiceFS 来备份可以节省你大量时间,我们会围绕这个主题写一系列的教程,整理出一套最佳实践,方便大家. ...

  5. 轩辕展览-VR虚拟展厅设计的好处和优势是什么?

    yu情仍在继续,实体展厅很糟糕,在过去两年之中,越来越多的实体展厅因闲置而关闭,线上VR虚拟展厅设计逐渐走出圈子,凭借云展示的优势和国家政策的支持,登上展示和销售的旗帜. 产品线上展厅的优势是什么1. ...

  6. 【C# IO 操作】 Path 路径类 |Directory类 |DirectoryInfo 类|DriveInfo类|File类|FileInfo类|FileStream类

    Directory类 Directory类 是一个静态类,常用的地方为创建目录和目录管理. 一下来看看它提供的操作. 1.CreateDirectory 根据指定路径创建目录.有重载,允许一次过创建多 ...

  7. Spring5框架学习笔记(详细)

    目录 01 Spring框架概述 02 IOC容器 IOC概念和原理 IOC BeanFactory接口 IOC操作 Bean管理(概念) IOC操作 Bean管理(基于xml方式) IOC操作 Be ...

  8. POJ3368题解

    题目大意:一个非降序序列,有若干查询,每次查询一个区间中重复次数最多的数字的个数. 思路:因为是非降序的,所以可以从头遍历把每个相同的数字划为一个块,用p[i]表示ai划分到了哪个块里面,同时还可以记 ...

  9. WPS二级标题链接到一级标题

    WPS二级标题链接到一级标题,即2后出现2.1 2.2而不是1.3 1.4什么的 样式中的编号什么的都不用动,默认即可,关键在于这些多级标题是否选择了同一个编号方式 WPS中,只需要将它们的编号选择为 ...

  10. C++ 删除一个字符串中的指定字符

    Q:一个数字是以xxx,yyy,zzz的字符串形式存储的,将逗号消去并转化为整数输出 方法一:char数组,即定义时s1定义为 char s1[20]的形式: //删除输入字符串中的逗号,并构建新串 ...