簡體   English   中英

在Linux Centos上未從crontab激活virtualenv

[英]virtualenv not activated from crontab on Linux Centos

我面臨一個奇怪的問題。

我需要編寫一個crontab來調用python腳本,但是我需要先激活virtualenv。 這是我寫的crontab:

SHELL = /bin/bash
MAILTO="mail@mail.com"
*/15 * * * * source /srv/python/virtualenvs/proj/bin/activate && /srv/python/virtualenvs/proj/bin/python3.6 /srv/python/proj/Scripts/scheduling.py

該腳本scheduling.py嘗試從使用Oracle數據庫導入數據Cx_Oracle Crontab給我一個錯誤:

[2018-12-05 14:45:02] ERROR - DB connection error: DPI-1047: 64-bit Oracle Client library cannot be loaded: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html

因此,我顯然想到了與Oracle和庫cx_Oracle有關的錯誤。 奇怪的是,如果我進入linux shell並執行

source /srv/python/virtualenvs/proj/bin/activate

然后鍵入python以打開python shell,然后:

import cx_Oracle
import pandas
con = cx_Oracle.connect('parameter_connection')
query = 'select * from tab1 fetch first 5 rows only'
pd.read_sql(query, con = con)

它的工作原理,並給我查詢結果。 我懷疑crontab的virtualenv沒有正確激活。

有任何想法嗎? 謝謝

在crontab中

*/15 * * * * /home/user/script.sh > /dev/null 2>&1

在script.sh中

#!/bin/bash
source /srv/python/virtualenvs/proj/bin/activate
/srv/python/virtualenvs/proj/bin/python3.6 /srv/python/proj/Scripts/scheduling.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM