我搜索了堆栈溢出,但没有帖子特别帮助Anaconda。
我正在尝试使用Python自己的命令行提示符。但要做到这一点,我需要激活我的Anaconda环境。我无法在网络上的任何地方找到如何运行基本的python脚本,以便能够激活所述环境。有谁知道怎么做?
答案 0 :(得分:6)
以下内容将在Python 3.5中使用子进程模块:
subprocess.run('source activate environment-name && "enter command here" && source deactivate', shell=True)
使用您要运行的命令替换“enter command here”。您不需要在命令末尾使用“source deactivate”,但它只是为了安全而包含在内。
这将在子进程调用期间临时激活Anaconda环境,之后环境将恢复到原始环境。这对于在临时环境中运行所需的任何命令非常有用。
答案 1 :(得分:0)
我需要同样的东西。但是我们不能在 Linux 的子进程中使用source。这是我的解决方法。
对于子进程,我将PYTHON脚本附加到设置了conda环境的shell后面。
# This is a Python code
script = 'python test.py'
cmd_dict = {
¦ ¦ 'activate_env': 'activate_env_%s.sh' % (random.randint(1000,9999)),
¦ ¦ 'script': script,
¦ ¦ 'conda_name': conda_name,
¦ ¦ }
cmd = 'cp activate.sh {activate_env} && echo "{script}" >> {activate_env} && sh {activate_env} {conda_name}'.format(**cmd_dict)
env = {}
env.update(os.environ)
result = subprocess.run(cmd, shell=True, env=env)
这是我的activate.sh,
#!/bin/sh
_CONDA_ROOT="/home/***/miniconda3"
. "$_CONDA_ROOT/etc/profile.d/conda.sh" || return $?
_conda_activate "$@"
答案 2 :(得分:-4)
只需输入以下命令就可以使用命令行激活特定环境:
activate environment-name
你必须在Linux上使用source。
source activate environment-name
http://conda.pydata.org/docs/using/envs.html#change-environments-activate-deactivate
编辑(2016年3月29日)
抱歉,我误解了这个问题。您应该能够使用subprocess module中的call方法通过Python脚本运行shell命令。
编辑:子流程的基本示例:
subprocess.call(["activate", value])