XIVN1987
V2EX  ›  Python

发现一种新的软件安装方式: pip

By XIVN1987 at 2018 年 12 月 31 日 · 10157 次点击

在 pypi 上发现了一个叫 cmake 的包,,感觉很奇怪,cmake 不是 C/C++的编译工具吗,怎么会跟 python 有关系,难道 cmake 是 python 写的??

于是把 cmake-3.13.2.post1-cp36-cp36m-win_amd64.whl 下载下来看了下,发现这个所谓的 python 包,里面就两个.py 文件,,内容还是些无关紧要的东西,倒是在 data/bin 目录下有 cmake.exe 、cmake-gui.exe 等文件,,

原来是把 python 的包机制作为一种软件安装手段了,,假装自己是个 python 包,方便用 pip 安装(>人<;)

第一次发现,,还有这么玩儿的

28 条回复  •  2019-01-02 09:20:16 +08:00
MonoLogueChi
   1
MonoLogueChi  
   2018 年 12 月 31 日 via Android
你见过用 npm 装 unity 包的吗
fy
   2
fy  
   2018 年 12 月 31 日
@MonoLogueChi #1 我觉得这个操作有点惊悚?如果这个 unity 是我理解的那个 unity 的话
orangeade
   3
orangeade  
   2018 年 12 月 31 日 via Android
不喜欢用系统包管理安装 Python 包,也不喜欢这种 Python 安装无关二进制工具的……
msg7086
   4
msg7086  
   2018 年 12 月 31 日   ❤️ 18
Steam 还能启动 Visual Studio 呢,逼格超高。
outladder
   5
outladder  
   2018 年 12 月 31 日 via Android   ❤️ 1
npm 安装的话,需要安装 nodejs 工具吗?
xeaglex
   6
xeaglex  
   2018 年 12 月 31 日
所以这么做的好处是?
zhustec
   7
zhustec  
   2018 年 12 月 31 日   ❤️ 1
pip 安装的包,升级都得间接的搞,pip 是我见过的比较难用的管理器。
AnyISalIn
   8
AnyISalIn  
   2018 年 12 月 31 日
pip 是一个包管理工具,只要定义好安装脚本,可以装任意软件
BingoXuan
   9
BingoXuan  
   2018 年 12 月 31 日 via Android
按道理你可以安装各种语言的 hello
lrxiao
   10
lrxiao  
   2018 年 12 月 31 日   ❤️ 1
lihongjie0209
   11
lihongjie0209  
   2018 年 12 月 31 日
conda install nodejs
XIVN1987
   12
XIVN1987  
OP
   2018 年 12 月 31 日
@xeaglex
不知道这样做有什么好处,,作者没说,,

我也是因为觉得这种 pip 用法挺奇葩,,所以才发帖聊聊
likuku
   13
likuku  
   2018 年 12 月 31 日 via iPhone
人类的另一种本质:一把锤子敲万物
redapple02043
   14
redapple02043  
   2018 年 12 月 31 日
我感觉这个功能还是挺不错的。。有时候在 deb 系上遇到依赖问题用 pip 装就没那么多事。。
alvin666
   15
alvin666  
   2018 年 12 月 31 日 via Android
很正常啊,pip 能装任何 Python 脚本,Python 可以 os.popen(),用的多了就会发现很多包其实不止可以 import,命令行下也可以直接用,比如 youget,thefuck 等等
imn1
   16
imn1  
   2018 年 12 月 31 日
没事,还有外国友人问我中国人拿着手机在收银台是不是刷积分呢
Daming
   17
Daming  
   2018 年 12 月 31 日
pip install tldr
flowfire
   18
flowfire  
   2018 年 12 月 31 日 via Android
@msg7086 ????
jim9606
   19
jim9606  
   2018 年 12 月 31 日
有些 pypi 包需要 C 模块的还是自己带个静态库比较方便,特别是 windows 这种对共享库管理很不友好的系统,省得部署麻烦。
有些库只做了一半,要现场编译得就麻烦了,还得装个专用得 VC 工具链,一有 error 就不知道怎么修。
anaconda 就是为此而生的,如果 conda 有 cmake 我不意外,pypi 搞这个估计是 为了用 python 控制 cmake 吧(我见过用 python 脚本生成 CMakefile 的)
pityhero233
   20
pityhero233  
   2018 年 12 月 31 日 via Android
@msg7086 ?????
ycfung
   21
ycfung  
   2018 年 12 月 31 日 via Android
@pityhero233 @flowfire Steam 的库中可以添加本地的程序,不会和账户有什么关系,但是好友列表会显示你正在使用的程序名字(开着 steam 写代码逼格满满
008px
   22
008px  
   2018 年 12 月 31 日 via Android
anaconda 不是很好用?自带超多库
Les1ie
   23
Les1ie  
   2018 年 12 月 31 日
pip 可以直接分发可用的程序,而不仅仅是 python 包,比如`you-get`, `youtube-dl`之类的
但是要注意,pip 是任何人都有权限上传文件的,包括恶意攻击者,使用 pip 下载东西之前,务必通过程序的官网或者 github 确认一下是否可信,确认名字拼写完全一样
dot2017
   24
dot2017  
   2018 年 12 月 31 日
pip 不是很早就有了么。。。
blless
   25
blless  
   2018 年 12 月 31 日 via Android
go get 更方便
leavic
   26
leavic  
   2018 年 12 月 31 日
这有啥奇怪的。。。
hatsuyuki
   27
hatsuyuki  
   2019 年 1 月 1 日
cmake 不是 C/C++ 的编译工具,是自动化构建工具
a226679594
   28
a226679594  
   2019 年 1 月 2 日
anaconda 不是很好用?
推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
© 2026 V2EX · 99ms · 3.9.8.5