VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 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没有安装)。

 

原文:https://www.cnblogs.com/lsyb/p/15605432.html

 


相关教程