Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android mac os-如何从bash脚本创建和激活conda(虚拟环境)?_Android_Bash_Shell_Anaconda_Conda - Fatal编程技术网

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

Android mac os-如何从bash脚本创建和激活conda(虚拟环境)?,android,bash,shell,anaconda,conda,Android,Bash,Shell,Anaconda,Conda,如何从bash脚本创建和激活conda(虚拟环境) 我已经读过很多关于堆栈溢出的文章,考虑到我是bash的初学者,这些文章对我来说都没有任何意义。而且,它们中的大多数与virtualenv有关,而不是与conda有关,这增加了混淆 我真的不明白source或exec是如何工作的,或者我是否需要为此使用它 我所要做的就是从bash脚本中创建一个conda虚拟环境,然后激活它。然后在新激活的“环境”上通过bash脚本运行更多命令 相反,当我运行下面的脚本时,所发生的情况是环境已经创建,但它没有被激活

如何从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)? 

解决方案愚蠢到用“source”而不是“bash”调用整个脚本。啊,啊,啊

而不是

bash site_builder.sh blah
使用

如果有人真的解释了为什么这会解决它,那将是一个幻想,因为我仍然不明白“源”在做什么

,“source是一个bash shell内置命令,它在当前shell中执行作为参数传递的文件的内容。”

而不是什么别的外壳

“源脚本在当前shell环境中读取并执行文件名中的命令”

他们将在什么样的壳中执行


什么shell是“bash site_builder.sh blah”而不是“source site_builder.sh blah”?

解决方案愚蠢到用“source”而不是“bash”调用整个脚本。啊,啊,啊

而不是

bash site_builder.sh blah
使用

如果有人真的解释了为什么这会解决它,那将是一个幻想,因为我仍然不明白“源”在做什么

,“source是一个bash shell内置命令,它在当前shell中执行作为参数传递的文件的内容。”

而不是什么别的外壳

“源脚本在当前shell环境中读取并执行文件名中的命令”

他们将在什么样的壳中执行

什么shell是“bash site_builder.sh blah”而不是“source site_builder.sh blah”?