本人前端一枚,习惯了 node 的 npm 之后感觉配置和使用起来都很简单方便,最近学习了一点 python 后,感觉 python 的包管理怎么这么不优雅。首先,配置文件居然是用 txt 文件来写的,二进制文件我用编辑器是无法打开的,然后用 git 也不能很好的版本管理;其次,pip install 是把包全都装在了全局,打开用户目录,一大堆以点开头的文件夹,抓狂。。。
101
rcteya76084 2018-01-04 19:37:34 +08:00 1
你们不要吵了,PHP 是最好的语言
|
102
ipwx 2018-01-04 20:25:29 +08:00
@vwxyzjn 其实我也主要用 Python,不过可能我写的程序不是很业务,而且引入依赖也比较谨慎(小库基本上 copy-paste-modify-test,好处是自己的单元测试比较放心),所以没啥大问题。
|
103
kiwi95 2018-01-04 23:14:18 +08:00
互联网上一半的流量都在跑 npm install/update,能不优雅
|
104
forrestchang 2018-01-04 23:20:34 +08:00
Python 的导入机制确实不太优雅,但是包管理机制还是众多语言中比较好的。
1. requirements.txt 只是文本文件,在 Linux 上后缀和文件是不是二进制无关,这样写只是约定俗成,你也可以写成别的; 2. 正确的做法是一个项目用一个 virtualenv 来管理包,进行项目间的包隔离。 |
105
Owenjia 2018-01-04 23:24:29 +08:00
requirements.txt 还是只在开发中使用比较好,有分发需求的话依赖最好写 setup.py 里;
pip 确实存在一些问题,比如处理依赖关系上,安装可能会需要手动使用系统包管理安装一些东西,卸载不能自动清理已经不被依赖的包(也许可以但我不知道)。 |
106
est 2018-01-04 23:28:42 +08:00
npm 的项目,放半年之后 npm update 一次保证跑不起来。
|
108
lightening 2018-01-05 03:38:10 +08:00
Python 的包管理机制确实不是最好的。不过你的吐槽都不在点上。
|
109
allenhu 2018-01-05 08:35:32 +08:00 via Android
Python 包好像是大小写乱用,看的很蛋疼
|
110
quinoa42 2018-01-05 09:00:12 +08:00
我常用 pyenv,尝试了一下 pipenv,确实很炫酷,但是感觉很不顺手…
用 pipenv 的话 virtualenv 肯定要全交给 pipenv 管理,可是 pipenv 各种操作都是直接无视 pyenv,比如 pipenv install --system ***把 package 装到了我也不知道在哪的地方 而且自带 flake 等等让我觉得 pipenv 有点做的太多了 如果能有一款只包含 pipfile[.lock]管理的工具就好了,其他方面我觉得还是 pyenv 好用 综上,滚回 pyenv 了:) 如果有正确的 pyenv+pipenv 使用方式,请务必告诉我 |
111
yylucifer 2018-01-05 09:42:32 +08:00
你用的姿势不对。。
|
112
korvin 2018-01-05 09:59:41 +08:00
你要和 node 的 npm 像一点可以用 pipenv 可以区分 prod 和 dev 包
|
113
ryh 2018-01-05 10:34:41 +08:00
npm 昨天各种在莫名其妙的 hang, taobao 的 官方的 官方的+梯子 都这样😂
感觉是墙的锅 |
114
ryh 2018-01-05 10:36:04 +08:00
补充下:yarn 也是如此
|
116
billion 2018-01-05 13:25:36 +08:00
|
117
lolizeppelin 2018-01-05 16:58:15 +08:00 via Android
瞎 bb openstack 那么大项目依赖都能写得清清楚楚
自己搞不定依赖怪 pip 再说了 linux 服务器上就该老老实实打包 rpm 什么包管理都是 TM 是假的 要么好好写依赖做 rpm 包 要么就和 Java 一样全部依赖包一个整的 部署的时候还 pip npm 早点死一边去 |
118
param 2018-01-06 18:39:13 +08:00
@lolizeppelin 部署我不觉得要打成 rpm,rpm 只保证兼容 red hat 系。我觉得在 Dockerfile 里写 pip 打包是 docker 镜像才是最佳实践。
|
119
est 2018-01-07 16:48:02 +08:00
|
120
cjc91 2018-01-23 17:06:55 +08:00
有一对情侣,男的非常懦弱,做什么事情之前都让女友先试。女友对此十分不满。 一次,两人出海,返航时,飓风将小艇摧毁,幸亏女友抓住了一块木板才保住了两人的性命。女友问男友:你怕吗?男友从怀中掏出一把水果刀,说:怕,但有鲨鱼来,我就用这个对付它。女友只是摇头苦笑。 不久,一艘货轮发现了他们,正当他们欣喜若狂时,一群鲨鱼出现了,女友大叫:我们一起用力游,会没事的!男友却突然用力将女友推进海里,扒着木板朝货轮了,并喊道:这次我先试!女友惊呆了,望着男友的背影,感到非常绝望。鲨鱼正在靠近,可对女友不感兴趣而径直向男友游去,男友被鲨鱼凶猛地撕咬着,他发疯似地冲女友喊道:我爱你! 女友获救了,甲板上的人都在默哀,船长坐到女友身边说:小姐,他是我见过最勇敢的人。我们为他祈祷!不,他是个胆小鬼。女友冷冷地说。 您怎么这样说呢?刚才我一直用望远镜观察你们,我清楚地看到他把你推开后用刀子割破了自己的手腕。鲨鱼对血腥味很敏感,如果他不这样做来争取时间,恐怕你永远不会出现在这艘船上。什么?女友听到真相如同晴天霹雳,她悲痛欲绝,伤心无比,只想立刻跳进海里和男友死在一起。关键时刻船长拉住了她:如果我是你,一定会好好的活下去,并用挖掘机把这条大海填平,为你的男朋友报仇血恨。女友沉默数秒,冷静的问:挖掘机技术哪家强。船长:中国山东找蓝翔。
|