python - Conda activate env 适用于 bash 但不适用于结构

标签 python ubuntu fabric

我在 ubuntu 16.04 VPS 上使用 fabric 和 python 3.6。如果我 ssh 并使用 bash,我可以这样做:

deploy@server:~$ conda info --envs
# conda environments:
#
python-devel             /home/deploy/miniconda3/envs/python-devel
test                     /home/deploy/miniconda3/envs/test
root                  *  /home/deploy/miniconda3

deploy@server:~$ source activate test
(test) deploy@server:~$

我有以下 Fabric 功能:
def _update_conda_env(site_folder, host):
......

    run(f'source ~/miniconda3/bin/activate test')
    run(f'~/miniconda3/bin/conda info --envs')

这给出了输出:
[deploy@mysite.org] run: source ~/miniconda3/bin/activate test
[deploy@mysite.org] run: ~/miniconda3/bin/conda info --envs
[deploy@mysite.org] out: # conda environments:
[deploy@mysite.org] out: #
[deploy@mysite.org] out: python-devel             /home/deploy/miniconda3/envs/python-devel
[deploy@mysite.org] out: test                     /home/deploy/miniconda3/envs/test
[deploy@mysite.org] out: root                  *  /home/deploy/miniconda3
[deploy@mysite.org] out: 
[deploy@mysite.org] out: 


Done.
Disconnecting from deploy@mysite.org... done.

我怎样才能让它在织物上工作

最佳答案

您的 activate除非您使用 prefix,否则只会保持事件一个周期.

with prefix('source ~/miniconda3/bin/activate test'):
    run(f'~/miniconda3/bin/conda info --envs')

这样,运行 block 中的所有内容都将以 source ~/miniconda3/bin/activate test && 为前缀

关于python - Conda activate env 适用于 bash 但不适用于结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43811625/

相关文章:

python - 如何使用 Django 验证器将日期限制为 1900 或更长

python - 如何在 Ubuntu 上获取 WXpython 2.8?

python - 在 fabric 中作为 sudo 执行

python - 有什么方法可以使用 tweepy 检索推文事件

python - Google Appengine 和 Python 异常

c - 如何通过cronjob调度定期调用C程序中的特定函数?

python - Ubuntu, fatal error : Python. h : No such file or directory #include <Python. h>

python - 如何仅在单个主机上运行 @roles-decorated 结构任务

shell - 如何将转义的 Jenkins 参数传递给 Fabric?

python - 子域与文件夹/目录