python - 无法使用bash脚本在virtualenv中运行python脚本

标签 python bash virtualenv conda

我想在内置的 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/

相关文章:

python - "Cannot open include file: ' config-win.h ': No such file or directory"安装 mysql-python 时

python - 使用 Python 将 CSV 转换为 mongoimport 友好的 JSON

bash - 使用 AWK 递归查找

python - 如何在 Matlab 的 virtualenv 中执行 Python 代码

bash - 编译几个项目(使用 makefile),但在第一个损坏的构建上停止?

bash - 同步两个音频文件

python - 如何让virtualenv Django服务器工作?//根据命令提示符 'missing attribute'

python - 编辑然后将多个列的值连接成一个列(pandas,python)

python - 如何在 Python 的外部程序中打开文件?

python - 我将如何使用 XGBoost 构建自己的评估指标来最大限度地减少高度不平衡类的测试错误?