页次: 1
嗯其实事情是这样的。。。。
之前有一个项目,有个同事是data scientist,用python的那种,他写完了然后我准备给它dockerize一下,因为TF日常不支持新版python,38出了几百年tf还在用36这种。
(现在39也出了然而tf还在用38)
然后我发现他项目里没有setup.py,没有requirements.txt,没有Pipfile,就这种。。。
然后我问他你依赖列表给我一下,然后,嗯,就喜闻乐见的就,他也不知道自己的项目具体都依赖了啥,就,很尴尬。
我其实不懂python因为我是大括号党,但virtualenv我还是知道怎么用的,然后我就手动找依赖么,大概就是先加个tf,然后看报错缺啥,然后就,反正,总之就是折腾了我半天。
我就想这问题是怎么个原因呢,是python有个全局的site-packages,而且pip install默认也是去那里。
反观隔壁node是在./node_modules底下,而且你也require不到全局的包,这要求就一个包所有的依赖就必须在package.json里列出来了。
那么如果让python也学会这种行为,那以后也就不用担心不知道依赖都有啥了。
那么问题来了,这可行吗?
还是说,我只有劝同事换语言和教同事用virtualenv这两种选择?
最近编辑记录 yw662 (2021-03-30 04:23:51)
ecmascript是世界上最好的语言
离线
要不先试着用 anaconda 跑一下
离线
容器化本身我已经搞定了,依赖管理用的virtualenv,但我就是想问一问python的依赖管理还能不能抢救一下
另外吐槽一下tf的体积是真心大
最近编辑记录 yw662 (2021-03-30 09:07:32)
ecmascript是世界上最好的语言
离线
那还是教他用 virtualenv 吧
离线
python -m venv ...
在 venv 里默认是看不到系统包的。
离线
我一直以为 virtualenv 和 python -m venv 是一样的,后来觉得既然有 -m evnv 就不用装 virtualvenv。
啦哆咪 - 用Linux制作音乐
https://lado.me
离线
virtualenv 文档说 venv 是它的子集 https://virtualenv.pypa.io/en/latest/
离线
但确实有venv就不需要virtualenv了。。。
然而其实我上面说错了,我用的是pipenv
ecmascript是世界上最好的语言
离线
页次: 1