作者uranusjr (←这人是超级笨蛋)
看板Python
标题Re: [问题] 如何得知套件只需要下载python程式码
时间Wed Sep 18 01:45:46 2019
※ 引述《eye5002003 (下一夜)》之铭言:
: 有些套件是基於python标准库写的
: 肯定抓下来就能马上用了
: 但是有些是需要先用C/C++编译东西出来才能套用
: 我要怎麽分辨?
: 只能看作者有没有注明而已吗?
: 有套件是用pip抓的时候就连同dll一起拿到手的吗?
: 还是pip就只会抓到python程式码而已?
如同推文所述, 即使非纯 Python 的套件也不见得需要编译
原因也如你的猜测, 套件作者会为(他想支援的)平台发布可直接使用的 binary
所以大部分状况下「是不是纯 Python」并非特别有用的准则
如果你想达成的行为是「让 pip 不要在安装套件时尝试编译」
那麽 pip install --only-binary=:all: 可以达到差不多的效果
这会让 pip 只考虑以 .whl 发行的套件, 进而避开所有编译[*]
当然如果你有套件非要编译才能装的, 在这个状态下就会安装失败
[*]: 这可能会让某些本来可以安装, 但是并非以 .whl 格式发行的套件无法安装
然而 pip 无法在安装开始之前预先知道非 .whl 的格式需不需要编译
所以在这种状况你可以改成手动列出不想编译的套件, 而非使用 :all:
https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption-no-binary
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.11.142 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1568742350.A.C79.html
1F:推 eye5002003: 原来安装时还能编译喔,那安装基於OpenAL之类的套件时 09/18 07:16
2F:→ eye5002003: python也会安装驱动程式吗?(既然编译都能代劳了) 09/18 07:18
3F:推 CodingMan: 老实说我觉得原Po 根本没自己试过就觉得有问题然後就上 09/18 11:56
4F:→ CodingMan: 来问了 09/18 11:56
5F:→ uranusjr: @eye5002003 理论上可以, 但是侦测驱动程式有没有被安装 09/18 12:52
6F:→ uranusjr: 比较困难, 应该很少人会这麽做 (就像 pip 也是假设你有 09/18 12:53
7F:→ uranusjr: 事先安装编译器, 不会自动帮你安装一样) 09/18 12:53
8F:→ roccqqck: 的确有些pypi要装其他非python套件才能用 09/23 18:31
9F:→ roccqqck: 但也不一定要build 通常是安装binary就好 09/23 18:43
10F:→ roccqqck: 例如ta-lib 09/24 20:18