Python 安装库的姿势

2017-03-18 10:20:51 +08:00
 xvx
背景: Python 爱好者,比较多的在 Windows 环境下用 Python ,偶尔用下 Linux ,习惯用 pip 做安装管理。

昨晚搭虚拟环境安装库,在 Windows 上很顺利就安装完了,但在 Linux 上面总是各种报错,虽然面向搜索引擎编程将很多库都安装上了,但还剩下一个 lxml 库死活安装不上。

常说: J (人) J (生)粗(苦)短,你用 Python 。

问下 PY 老司机们,安装库有没有什么特殊姿势,可以尽量避免踩坑?
4440 次点击
所在节点    Python
42 条回复
thedog
2017-03-18 10:26:52 +08:00
anaconda
icedx
2017-03-18 10:27:24 +08:00
去 Pypi 下载.whl 文件
然后 pip install *.whl
ladrift
2017-03-18 10:28:09 +08:00
有些 Python 库是需要 c 库支持的,比如 lxml
playniuniu
2017-03-18 10:30:12 +08:00
安装 python-dev 包 然后看报错信息 缺什么库就装什么 找个主流 linux 发行版 不会有问题
xvx
2017-03-18 10:43:31 +08:00
@icedx 试过了, linux 版的都下载这样装过,都提示不支持系统平台……
xvx
2017-03-18 10:44:33 +08:00
@playniuniu 用的是 Linux Mint 。 python-dev 包已经装了,报错提示缺的库也装了。
xvx
2017-03-18 10:44:56 +08:00
@ladrift lxml 的 C 库已经装了。
ipwx
2017-03-18 10:47:27 +08:00
如果是 Ubuntu : apt-get install -y libxml2-dev python-dev build-essential
然后 pip install 基本可以解决问题。
- - - -

根本原因是 libxml 用了 C 语言写的库,所以要装一个。你用多了就会发现, Linux 下面装 Python 的包远比 Windows 容易。基本上就是看看出错信息,了解一下哪些库系统还没装,然后 apt-get install 对应的包,然后就解决了。

如果是 Windows ,你基本上只能期待有预先编译好的版本,如果没有,那就恭喜你了……
- - - -

此外你可以选择 Anaconda ,作为一个独立的 Python 发行版,它有巨大的预编译仓库。
ipwx
2017-03-18 10:48:45 +08:00
在 Ubuntu 里面 libxml2 和 libxml2-dev 是两个软件包。前者不带头文件和链接库。
phrack
2017-03-18 10:53:38 +08:00
对的, anaconda 自带很多常用库,解决掉不少问题。
ladrift
2017-03-18 11:19:45 +08:00
@xvx 会不会没有装 dev 包, lxml-dev 之类的名字的包
icherler
2017-03-18 11:20:27 +08:00
可以先装 wheel 然后下载.whl 文件安装 我的 lxml 就是这样装上的
http://www.lfd.uci.edu/~gohlke/pythonlibs/ 附上网址
xvx
2017-03-18 11:21:52 +08:00
@thedog
@phrack
@ipwx 这个科学技术发行版好像不太适合吧。我是主要用来折腾 flask ,搞网站开发的。
xvx
2017-03-18 11:22:46 +08:00
@icherler 这个方法我已经试过了,提示平台不支持……我明明下的就是 Linux 版的。
xvx
2017-03-18 11:26:51 +08:00
@ladrift 错误提示的 dev 包我都装了。不知道会不会是 wheel , steup tool 版本的问题,换个版本提示信息会不一样,今晚回去再试试。
thedog
2017-03-18 11:30:13 +08:00
@xvx 虽然 anaconda 主要是用来进行科学计算,但是很多其他包也都装了,并且自带的 conda 包管理工具虽然速度慢,但是能装上一些 pip 安装失败的包
billgreen1
2017-03-18 11:33:59 +08:00
@thedog, 有清华源
pynix
2017-03-18 11:39:46 +08:00
小白路过。。。
z657386160z
2017-03-18 11:47:40 +08:00
jy02201949
2017-03-18 11:54:19 +08:00
win 上 lxml 跟 linux 上 lxml 包不一样,按理说 linux 上直接 pip 装就好了啊, win 上才要下单独编译好的才对。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/348386

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX