如何从bash脚本创建和激活conda(虚拟环境)?
我已经阅读了很多堆栈溢出帖子。鉴于我是bash的初学者,他们中没有一个对我有任何意义。此外,他们中的大多数属于virtualenv,而不是conda,这增加了混乱。
我真的不明白源或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)?
答案 0 :(得分:1)
解决方案与使用“source”而不是“bash”调用整个脚本一样愚蠢。 UHHHHHHHHGGGG!
而不是
<ng-container *ngFor="let field of fieldsTable; let i = index">
<!--condition in the grid-list tag checks if the key filed can be shown -->
<md-grid-list class="static-column" cols="1" rowHeight="25px" *ngIf="field.$type == GlobalVariables.typeClasses.Static && (field.Name !== '' || showKey)">
<md-grid-tile class="field-name-tile theme-primary" *ngIf="!field.IsKey;">
{{field.Name}}
</md-grid-tile>
<md-grid-tile class="field-name-tile theme-primary" *ngIf="field.IsKey && showKey" mdTooltip="Key field used to update data for this row via the api, values must be unique.">
<md-icon>vpn_key</md-icon>
</md-grid-tile>
<md-grid-tile class="static-field-tile theme-accent-alternating " *ngFor="let content of field.ContentData; let i = index">
<md-input-container class="content-data-input">
<input class="field-input" mdInput (keyup)="content.Value=$event.target.value" value="{{content.Value}}">
</md-input-container>
</md-grid-tile>
</md-grid-list>
</ng-container>
使用
bash site_builder.sh blah
如果有人真正解释了为什么这会解决它,那将是非常奇妙的,因为我仍然不明白“来源”在做什么。
https://superuser.com/questions/46139/what-does-source-do says,“source是一个bash shell内置命令,它在当前shell中执行作为参数传递的文件的内容。”
与其他shell相反?
“源脚本在当前shell环境中读取并执行来自filename的命令”
他们将执行哪些其他shell?
什么shell是“bash site_builder.sh blah”反对“source site_builder.sh blah”??