我想在内置的 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) 的 pip 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
。创建环境:
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
?
关于python - 无法使用bash脚本在virtualenv中运行python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49150036/