我想在内置的anaconda环境tensorflow_p36中运行python脚本。要检查它是否在虚拟环境中,我使用命令pip -V
。
我第一次尝试使用bash脚本:
#!/bin/bash
source activate tensorflow_p36
python /home/ec2-user/abc/temp.py
pip -V
注意:tensorflow_p36
是一个内置环境,不需要从特定的/env/bin
目录中调用。它可以从任何目录激活。我认为它是Amazon Deep Learning AMIs的一项功能。
我对bash脚本的第二次尝试:
#!/bin/bash
pythonEnv="/home/ec2-user/anaconda3/envs/tensorflow_p36/"
source ${pythonEnv}bin/activate
${pythonEnv}bin/python /home/ec2-user/abc/temp.py
pip -V
注意:当我尝试在终端中运行source /home/ec2-user/anaconda3/envs/tensorflow_p36/bin/activate
命令时,环境未被激活。
每次,我都得到相同的结果:
来自/home/ec2-user/anaconda3/lib/python3.6/site-packages(python 3.6)的pp 9.0.1然而,我应该得到:
pip 9.0.1 from /home/ec2-user/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (python 3.6)
有人可以解释如何激活虚拟环境并从该环境运行python脚本?我需要使用这个特定的环境,因为它中安装了依赖项。
额外信息: 不确定它是否重要,但tensorflow_p36是conda environment,而不是virtualenv。
答案 0 :(得分:0)
这与virtualenv
一起使用。创建环境:
virtualenv -p python 3.6 tensorflow_p36
然后将脚本更改为:
#!/bin/bash
source $HOME/tensorflow_p36/bin/activate
python /home/ec2-user/abc/temp.py
我相信您在使用anaconda
而不是virtualenv
创建python环境这一事实引起了困惑。这两个工具的工作方式不同。
如果您使用的是EC2实例,为什么不以全局方式安装tensorflow_p36
?