Python安装wxPython和ubuntu使用apt提示不能更新
[空两格]昨天憨批室友搁我面前装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提示不能更新的更多相关文章
- [python]安装wxpython的时候遇到问题记录
一.安装wxpython的时候报错 “no installation of python 2.7 found in registy” 解决方案: win7上,已经安装python27,但是在安装wxp ...
- 安装Docker到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.5 LTS 软件版本:Docker-CE-18.09.5 硬件配置:无 安装过程 1.卸载旧版本 root@ubuntu:~# sudo apt-get ...
- 安装PHP到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.2 LTS 软件版本:PHP-5.6 硬件要求:无 安装过程 1.安装APT存储库 APT存储库由PPA提供. root@localhost:~# apt ...
- 安装MongoDB到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.5 LTS 软件版本:mongodb-org-4.0.8 硬件要求:无 安装过程 1.配置APT-Mongodb存储库 ATP-Mongodb存储库由Mo ...
- 安装MYSQL到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.6 LTS 软件版本:MYSQL-5.7 硬件要求:无 安装过程 1.安装APT-MYSQL存储库 APT-MYSQL存储库由MYSQL官网提供.选择安装 ...
- 安装Jenkins到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.4 LTS 软件版本:Jenkins-2.176.2 硬件要求:最低内存:256MB.磁盘:1GB 安装过程 1.配置APT-Jenkins存储库 APT ...
- 安装Zabbix到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.2 LTS 软件版本:Zabbix-4.0.2 硬件要求:无 安装过程 1.安装APT-Zabbix存储库 APT-Zabbix存储库由Zabbix官网提 ...
- 安装Gitlab到Ubuntu(APT)
运行环境 系统版本:Ubuntu 16.04.6 LTS 软件版本:Gitlab-ce-11.10.1 硬件要求:最低2核4GB,建议4核8GB 安装过程 1.安装依赖 root@localhost: ...
- 关于Ubuntu下apt的一些用法及和yum的比较
Fedora和Red Hat有yum安装软件,Ubuntu有apt工具. apt简单的来说,就是给Ubuntu安装软件的一种命令方式. 一.apt的相关文件 /etc/apt/sources.list ...
随机推荐
- Solution -「洛谷 P4198」楼房重建
\(\mathcal{Description}\) Link. 给定点集 \(\{P_n\}\),\(P_i=(i,h_i)\),\(m\) 次修改,每次修改某个 \(h_i\),在每次修改后 ...
- Solution -「LOJ #141」回文子串 ||「模板」双向 PAM
\(\mathcal{Description}\) Link. 给定字符串 \(s\),处理 \(q\) 次操作: 在 \(s\) 前添加字符串: 在 \(s\) 后添加字符串: 求 \(s\ ...
- 第三章 in,not in 的理解,limit限制结果集
IN 运算符用来判断表达式的值是否位于给出的列表中:如果是,返回值为 1,否则返回值为 0.NOT IN 的作用和 IN 恰好相反,NOT IN 用来判断表达式的值是否不存在于给出的列表中:如果不是 ...
- 我们一起来学grep
文章目录 grep 介绍 grep 命令格式 grep 命令选项 grep 实例 查找指定进程 查找指定进程个数 从文件中读取关键词进行搜索 从多个文件中查找关键字 输出以u开头的行 输出非u开头的行 ...
- Spring 类名后缀理解
Aware 理解 实现Spring的Aware接口. 定义为感知.意识,核心意义在于通过Aware可以把spring底层组件注入到自定义的bean中. 对于bean与容器的关系,bean不应该知道自身 ...
- Spring Boot Starter 理解
个人理解 快速集成,快速基础配置. 参考 深入springboot原理--一步步分析springboot启动机制(starter机制) 深入springboot原理--动手封装一个starter
- jenkins发布代码选择不同分支
jenkins上传代码分支以前都是用变量的方式,手动实现.过程就像这样 构建时候的界面就像下面这样,需要手动输入分支版本. 或者有固定的上线分支,用参数化构建 选项参数 来选择.总之这些方法比较传统, ...
- 用这个BI工具,不会代码的业务人员也能做数据分析!
随着企业的迅速发展,企业对数据分析的需求也在不断地凸显,但我们在实际的工作中经常会遇到这样尴尬的情形:擅长数据分析的人不懂业务,擅长业务的人又不了解数据分析.那么怎么让更懂业务逻辑.业务分析需求和痛点 ...
- 基于隐私保护技术的DNS通信协议介绍
本文提出了一种基于用户数据报协议的DNS传输中用户隐私保护的加密方法:DNSDEA.该方法采用PKI加密体系与DNS协议相融合,不仅解决了域名隐私保护问题,而且与传统DNS体系相兼容,保持了DNS系统 ...
- CSC.exe编译器使用
如何用CSC.exe来编译Visual C#的代码文件 Visual C#是微软公司推出的新一代程序开发语言,Visual C#是微软公司.Net FrameWork框架中的一个重要的组成部分,也是微 ...