1
lanqing OP 刚没注意 ,第一个报错信息为 crontabShell.sh: source: not found
第二个报错信息才是 python,模块没找到, 这是因为 bash 中没有 source 命令呀!!?? |
2
lanqing OP 问题已解决.
ls -l /bin/sh 可以发现 ubuntu 的使用 dash 解析的. centos 使用 bash 解析的(bash 解析可以正常运行我的程序). 原链接: https://blog.csdn.net/buynow123/article/details/51774018 |
3
vissssa 2018-09-14 16:16:56 +08:00
.env/bin/celery 不行么
|
4
lanqing OP @vissssa 这个问题我没有去试,但是我觉得对于我的程序来说是不可以的.
因为这样虽然能够运行 celery ,但是程序中还是有其他的模块,这些模块都需要在虚拟环境中运行 |
5
TimePPT 2018-09-14 16:44:39 +08:00
方便本地开发调试可以试试 direnv
https://github.com/direnv/direnv ``` direnv is an environment switcher for the shell. It knows how to hook into bash, zsh, tcsh, fish shell and elvish to load or unload environment variables depending on the current directory. This allows project-specific environment variables without cluttering the ~/.profile file. ``` server 部署的话在我一般用 supervisor 惯了,在 conf 里可以设 env path |
6
fuxiuyin 2018-09-14 17:07:30 +08:00 1
脚本里面直接用
{path_to_dir}/env/bin/[python|celery]这种执行别 |
7
fuxiuyin 2018-09-14 17:09:29 +08:00 1
不知道 celery 能不能用 python -m celery 这种。
我用 virtualenv 的时候,就是直接 xxx/env/bin/python xxxx 这样跑,这样 python 能自己找自己的环境,指定那个虚拟环境的 python 就能加载哪个环境的包依赖。 |