crontab에 대해 virtualenv를 설정하는 방법은 무엇입니까?
Python 스크립트를 실행하기 위해 crontab을 설정하고 싶습니다.
스크립트는 다음과 같습니다.
#!/usr/bin/python
print "hello world"
해당 Python 스크립트를 실행할 virtualenv를 지정할 수있는 방법이 있습니까? 쉘에서는 다음과 같이합니다.
~$ workon myenv
virtualenv를 활성화하기 위해 crontab에서 할 수있는 것과 동등한 것이 있습니까?
"workon"을 사용하는 경우 실제로 virtualenv 위에있는 또 다른 추상화 계층 인 "virtualenv wrapper"를 사용하고 있습니다. virtualenv 루트 디렉터리로 cd'ing하고 다음을 실행하여 virtualenv 만 활성화 할 수 있습니다.
source bin/activate
workon은 virtualenv가 아닌 virtualenv 래퍼에서 제공하는 명령이며 일반 virtualenv에 반드시 필요하지 않은 몇 가지 추가 작업을 수행합니다. 정말 필요한 것은 virtualenv 루트 디렉토리의 bin / activate 파일을 소싱하여 virtualenv를 "활성화"하는 것입니다.
다음을 수행하는 bash 스크립트를 호출하도록 crontab을 설정할 수 있습니다.
#! /bin/bash
cd my/virtual/env/root/dir
source bin/activate
# virtualenv is now active, which means your PATH has been modified.
# Don't try to run python from /usr/bin/python, just run "python" and
# let the PATH figure out which version to run (based on what your
# virtualenv has configured).
python myScript.py
저에게 잘 맞는 또 다른 솔루션 ...
0 9 * * * /path/to/virtenv/bin/python /path/to/cron_script.py
나는 virtualenv에서 직접 파이썬을 사용하는 것을 선호합니다 ...
bash를 사용하면 모든 명령 time
을 래퍼하는 방법과 마찬가지로 모든 명령 을 호출 하는 데 사용할 수있는 일반 가상 환경 래퍼를 만들 수 있습니다 .
virt_env_wrapper.bash
:
#!/bin/bash
source path/to/virtual/env/bin/activate
"$@"
Bash의 마법 주문 "$@"
은 원래 명령 줄의 모든 토큰을 다시 이스케이프하므로 다음을 호출 할 수 있습니다.
virt_env_wrapper.bash python foo.py bar 'baz blap'
foo.py
볼 것 sys.argv
의를['bar', 'baz blap']
참고 URL : https://stackoverflow.com/questions/4150671/how-to-set-virtualenv-for-a-crontab
'development' 카테고리의 다른 글
Seaborn lmplot facetgrid에서 xlim 및 ylim을 설정하는 방법 (0) | 2020.11.06 |
---|---|
"DateTime"은 무엇입니까? (0) | 2020.11.06 |
주어진 ASCII 값에 대한 문자를 얻는 방법 (0) | 2020.11.06 |
디스크에 쓰지 않고 .zip 파일 다운로드 및 압축 해제 (0) | 2020.11.06 |
emacs 기본 글꼴 크기 및 글꼴 유형을 어떻게 변경합니까? (0) | 2020.11.06 |