【发布时间】:2018-08-15 20:52:27
【问题描述】:
我有一个 bash 文件,从终端执行时可以正常工作。
#!/bin/bash
source activate tensorflow_p36
python /home/ec2-user/abc/wsgi.py
注意:tensorflow_p36 是一个内置的 conda 环境,不需要从特定的 /env/bin 目录中调用。它可以从任何目录激活。我认为这是Amazon Deep Learning AMIs的一个特点。
如果我使用sudo 运行此 bash 脚本,它不会激活虚拟环境并在默认的 python 环境中工作。 python 文件只能在该虚拟环境中运行。
我在这里尝试过all 3 alternatives(rc.local,.conf 文件,init.d 配置),也尝试过使用 crontab 作为suggested here。我还尝试使用 supervisord 将此 bash 脚本添加为程序。
当程序从这些方法运行时,我总是会遇到相同的导入错误,因为它使用的是没有所需依赖项的默认 python 3 环境。
我正在开发 Amazon CentOS(深度学习 AMI)。有人可以建议每次系统重新启动时运行此脚本的方法吗?
【问题讨论】:
-
您是否尝试启动虚拟环境?
-
第一行依赖于
activate在您路径上的目录中。 -
@AbhisekRoy,是的,想激活现有的 virtualenv 并在该环境中运行 python 脚本。
标签: python bash centos virtualenv