pip freeze导出版本号取消“@ file” (python环境导出总结)

我们知道,想要导出自己的anaconda python环境有两种方式:

  1. conda:conda env export > environment.yml
  2. pip:pip freeze > requirements.txt

但是这两种方式导出的环境有一定缺陷,最好写成下面:

  1. conda:conda env export | grep -v "^prefix: " > environment.yml 可以移除prefix,即自己本地的anaconda地址,用于保护隐私,虽然这不影响别人安装
  2. pip: pip list --format=freeze > requirements.txt, pip默认会使用本地的缓存文件进行package安装,所以pip freeze的时候,那些使用本地缓存安装的包默认有@ file:///opt/,这样的话其他人就没办法用你的requirement.txt; 而这里提供的这种写法可以让所有package都是版本号。

这之后,其他人要复现你的环境,只需要:

  1. conda:conda env create -f environment.yml
  2. pip:pip install -r requirements.txt

注意:

在使用conda 或者 pip之前,先确定,自己当前这个虚拟环境里面的东西,是用pip 还是 conda安装的;例如,你如果所有的packages都是用pip安装的,那么你用conda env export > environment.yml导出的将会是一个空文件。

建议提前用conda list看看输出是不是为空,如果为空,那么大概率你的环境都是pip安装的,那么应该用pip freeze 而不是conda env export.

详情见:https://github.com/conda/conda/issues/10997

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值