【发布时间】:2018-08-15 10:39:51
【问题描述】:
我想在内置的 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。
【问题讨论】:
-
你确定 venv 是为了包含它自己的
pip而构建的吗? -
当我使用终端进入
tensorflow_p36时,我得到输出pip 9.0.1 from /home/ec2-user/anaconda3/envs/tensorflow_p36/lib/python3.6/site-packages (python 3.6)希望我正确回答了你的问题。 -
在激活 venv 后立即执行
hash -r pip是否有帮助? -
我不知道哈希的目的是什么,你能告诉我它在这种情况下有什么帮助吗?
-
我刚刚运行了你的第一个脚本——一个完全类似的版本——第二行没有 tensorflow_p36。我把它放在虚拟环境的bin目录下。它工作正常。 pip 版本打印输出显示它是我的 virtualenv 中的版本。
标签: python bash virtualenv conda