Python 的包管理感觉怎么这么不优雅。。。

2018 年 1 月 3 日
 serge001

本人前端一枚,习惯了 node 的 npm 之后感觉配置和使用起来都很简单方便,最近学习了一点 python 后,感觉 python 的包管理怎么这么不优雅。首先,配置文件居然是用 txt 文件来写的,二进制文件我用编辑器是无法打开的,然后用 git 也不能很好的版本管理;其次,pip install 是把包全都装在了全局,打开用户目录,一大堆以点开头的文件夹,抓狂。。。

22690 次点击
所在节点    Python
120 条回复
jsfaint
2018 年 1 月 4 日
你需要 pipenv
wucancc
2018 年 1 月 4 日
@Kilerd 经常遇到,也是这么解决的。
toono
2018 年 1 月 4 日
pipenv 算是比较新的比较先进的。每个项目会有依赖列表文件,依赖安装的位置也是确定的
TangMonk
2018 年 1 月 4 日
bundler 路过
secsilm
2018 年 1 月 4 日
听你们说 pip 很坑的样子,可能是我用了个假的 pip 吧
qsnow6
2018 年 1 月 4 日
pip 是不考虑安装环境的,如果你要安装的库里面需要系统环境支持的话,就需要自己把环境配好。
比如 lxmlx,就是个大魔王,网上搜下,多少人躺过这个坑。

如果不涉及 C 库或者系统环境还好,不然还真的蛮头疼的。

所以 conda 就是为了解决这个的,真的很好用,安装包的时候,顺带帮你把这个包所需的环境包也装了。
rocksolid
2018 年 1 月 4 日
windows 下面 pip 的确蛮烦的
Mark24
2018 年 1 月 4 日
@Kilerd 遇到过,热更新总是延时,也是这样解决的。
onlyice
2018 年 1 月 4 日
对于 Python 库,可以用 pipenv,最新的最佳实践。

如果是带 C 扩展的 Python 库(比如 mysqlclient ),会麻烦一点,需要保证你的系统环境上有相应的 C 库(如 libmysqlclient.so )。这块可以看下 Anaconda 的实现。
doubleflower
2018 年 1 月 4 日
pip 的确比 npm 设计上差老多了。
但是因为 python 不像 js 包分的很细很多,py 项目总的包数量是很少的,所以还能处理。如果 py 也像 js 几行代码都能做一个包,那他这个设计早就崩溃了。
LokiSharp
2018 年 1 月 4 日
所以,有了 pipenv 啊
psuwgipgf
2018 年 1 月 4 日
我用 python 写爬虫的时候也是这样想的,不过后来用了 golang。。。。
lihongjie0209
2018 年 1 月 4 日
pip 和 npm 都挺难用的
bolide2005
2018 年 1 月 4 日
python 的包管理在各类第三方工具的帮助下已经算是比较“优雅”的了
不然你试试 golang ……
feather12315
2018 年 1 月 4 日
@hsuan Linux ? 装软件软件源里的,几乎都有。没有的自己打包个。
circleee
2018 年 1 月 4 日
@Kilerd 遇到过。
circleee
2018 年 1 月 4 日
@huangunic0rn .............
Tink
2018 年 1 月 4 日
virtualenv
anasplrt34
2018 年 1 月 4 日
用了 golang 的包管理 你就会觉得 pip 是多么优秀了 www
guyskk0x0
2018 年 1 月 4 日
@zachguo 带 C 拓展的确实很复杂,尤其是 Linux,不同系统依赖的动态链接库不一致,在脚步语言里是硬伤,npm 也有类似的问题,只不过它很少带 C 拓展的库。docker 按理说不会有这种问题。

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

https://v2ex.ih06.com/t/419850

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

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

© 2021 V2EX