您尚未登录。

#1 2021-03-30 04:14:51

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

话说有没有办法让python默认不去找全局库

嗯其实事情是这样的。。。。
之前有一个项目,有个同事是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是世界上最好的语言

离线

#2 2021-03-30 09:01:46

SamLukeYes
会员
所在地: Canton, China
注册时间: 2020-07-19
帖子: 320
个人网站

Re: 话说有没有办法让python默认不去找全局库

要不先试着用 anaconda 跑一下 tongue

离线

#3 2021-03-30 09:06:16

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

Re: 话说有没有办法让python默认不去找全局库

容器化本身我已经搞定了,依赖管理用的virtualenv,但我就是想问一问python的依赖管理还能不能抢救一下

另外吐槽一下tf的体积是真心大

最近编辑记录 yw662 (2021-03-30 09:07:32)


ecmascript是世界上最好的语言

离线

#4 2021-03-30 09:26:07

SamLukeYes
会员
所在地: Canton, China
注册时间: 2020-07-19
帖子: 320
个人网站

Re: 话说有没有办法让python默认不去找全局库

那还是教他用 virtualenv 吧 hmm

离线

#5 2021-03-30 11:41:10

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,919
个人网站

Re: 话说有没有办法让python默认不去找全局库

python -m venv ...

在 venv 里默认是看不到系统包的。

离线

#6 2021-03-31 00:31:18

Tee
会员
注册时间: 2016-09-10
帖子: 143
个人网站

Re: 话说有没有办法让python默认不去找全局库

我一直以为 virtualenv 和 python -m venv 是一样的,后来觉得既然有 -m evnv 就不用装 virtualvenv。


啦哆咪 - 用Linux制作音乐
https://lado.me

离线

#7 2021-03-31 09:25:55

silkriver
会员
注册时间: 2020-07-24
帖子: 148

Re: 话说有没有办法让python默认不去找全局库

virtualenv 文档说 venv 是它的子集 https://virtualenv.pypa.io/en/latest/

离线

#8 2021-03-31 10:06:53

yw662
大会员
所在地: localhost
注册时间: 2018-10-10
帖子: 424

Re: 话说有没有办法让python默认不去找全局库

但确实有venv就不需要virtualenv了。。。
然而其实我上面说错了,我用的是pipenv


ecmascript是世界上最好的语言

离线

页脚