爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12795|回复: 3

[经验总结] create-wrappers的使用

[复制链接]

新浪微博达人勋

发表于 2019-3-11 20:29:16 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 葫芦爷儿 于 2019-3-11 20:33 编辑

假如现在有这样的情况,有两个事情需要的python环境不同,分别叫ocean(python是3.5)和atmosphere( python是2.7)现在有两个脚本ocean.py和atmosphere.py。

在ocean.py中有一部需要调用atmosphere.py。

实现思路是:1 利用create-wrappers 创建临时环境 2 subprocess.call中调用命令
其中create-wrappers的用法,我在下面介绍。
  1. CMD = 'create-wrappers  -t conda --bin-dir /Users/test/anaconda3/envs/atmosphere/bin --dest-dir /tmp/conda_wrappers --conda-env-dir /Users/test/anaconda3/envs/atmosphere/'
  2. p = subprocess.call(CMD, shell=True)

  3. CMD = "/tmp/conda_wrappers/python  {:}".format(file_name)
  4. p = subprocess.call(CMD, shell=True)
复制代码


create-wrappers:
a 安装conda install -c conda-forge exec-wrappers
b 熟悉语法:create-wrappers  -t conda --bin-dir ~/miniconda/envs/test/bin --dest-dir /tmp/conda_wrappers --conda-env-dir ~/miniconda/envs/test
这里“ ~/miniconda/envs/test/bin”是已存在环境,“/tmp/conda_wrappers”临时环境。
C 先CMD创建环境,再调用。

再看上面的代码,使用时已经是在ocean下,所以要包装一个临时的atmosphere环境。




解决该问题的思路来自:https://stackoverflow.com/questi ... n-conda-environment
安装参考:https://anaconda.org/conda-forge/exec-wrappers
该工具使用方法参考:https://github.com/gqmelo/exec-wrappers







密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-3-12 09:12:13 | 显示全部楼层
除了print,大多py2代码在py3里都可用吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-3-15 15:39:12 | 显示全部楼层
werewolf 发表于 2019-3-12 09:12
除了print,大多py2代码在py3里都可用吧

之后我看一下。目前是为了避免出错,于是没有改动之前的代码。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2019-3-15 15:39:17 | 显示全部楼层
werewolf 发表于 2019-3-12 09:12
除了print,大多py2代码在py3里都可用吧

之后我看一下。目前是为了避免出错,于是没有改动之前的代码。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表