【问题标题】:mac os - How to create and activate conda (a virtual environment) from a bash script?mac os - 如何从 bash 脚本创建和激活 conda(虚拟环境)?
【发布时间】:2017-07-13 19:26:03
【问题描述】:

如何从 bash 脚本创建和激活 conda(虚拟环境)?

鉴于我是 bash 的初学者,我已经阅读了很多关于堆栈溢出的帖子。此外,它们中的大多数都与 virtualenv 相关,而不是 conda,这增加了混乱。

我真的不明白 source 或 exec 是如何工作的,或者我什至需要为此目的使用它。

我要做的就是从 bash 脚本中创建一个 conda 虚拟环境,然后激活它。然后在新激活的“环境”上通过 bash 脚本运行更多命令。

相反,当我运行下面的脚本时,环境已创建,但未激活。终端要求提示继续创建虚拟环境也无济于事(需要人工输入不好)。

这是脚本:

#!/bin/bash
dirname=$1
conda create -n $1 python=2.7
source activate $1

终端展示:

Jills-MBP:Desktop jillr$ bash site_builder.sh blah
Fetching package metadata: ....
Solving package specifications: ..........
Package plan for installation in environment /Users/jillr/anaconda/envs/blah:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2l-0     
    pip:        9.0.1-py27_1 
    python:     2.7.13-0     
    readline:   6.2-2        
    setuptools: 27.2.0-py27_0
    sqlite:     3.13.0-0     
    tk:         8.5.18-0     
    wheel:      0.29.0-py27_0
    zlib:       1.2.8-3      

Proceed ([y]/n)? 

【问题讨论】:

    标签: android bash shell anaconda conda


    【解决方案1】:

    解决方案就像用“source”而不是“bash”调用整个脚本一样愚蠢。嗯嗯嗯嗯嗯嗯嗯嗯!

    代替

    bash site_builder.sh blah
    

    使用

    source site_builder.sh blah
    

    如果有人真的解释了为什么这可以解决它,那将是非常奇妙的,因为我仍然不明白“源”在做什么。

    https://superuser.com/questions/46139/what-does-source-do says, “source 是一个 bash shell 内置命令,它在当前 shell 中执行作为参数传递的文件的内容。”

    相对于其他什么shell?

    “源脚本在当前shell环境中从filename读取并执行命令”

    它们会在什么其他 shell 中执行?

    与“source site_builder.sh blah”相对的“bash site_builder.sh blah”是什么shell??

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2021-06-15
      • 2018-07-15
      • 2017-09-12
      相关资源
      最近更新 更多