質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

735閲覧

centos7 cronでpython仮想環境での実行

expy

総合スコア103

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2019/01/30 06:22

####やりたいこと
cron pythonを仮想環境で実行させたい。

####前提条件(環境)
centos7.4
pyenv
Anaconda3-5.3.1

~/.bashrc にパス設定
export PATH="$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH"

仮想環境作成
conda create -n py34 python=3.4 anaconda

実行ファイル
/home/hoge/fuga.py

####試したこと

crontab

110 * * * * python /home/hoge/fuga.py

fuga

1#!/root/.pyenv/versions/anaconda3-5.3.1/envs/py34/bin/python3.4 2import sys 3print(sys.version)

実行結果
2.7.5 (default, Oct 30 2017, 23:45:53)……

cron側で仮想環境を指定するのか、またはpython側で仮想環境を指定するのか(どう設定するのか)教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ログインシェルとして実行してみてください。

10 * * * * /bin/bash -l -c /home/hoge/fuga.py

/bin/bashwhich bashでパスを確認してください

投稿2019/01/30 06:41

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

expy

2019/01/30 07:12

cronに/bin/bash -l -c(オプションはあとで調べます)を追加し python自体は最初のシバンを残したらできました! ありがとうございました。
guest

0

ベストアンサー

python /home/hoge/fuga.pyと書いてるため、fuga.pyの1行目が無視され、OS標準のPythonが実行します。

Crontab

110 * * * * /root/.pyenv/versions/anaconda3-5.3.1/envs/py34/bin/python3.4 /home/hoge/fuga.py

とフルパスで書く。

あるいは、chmod +x /home/hoge/fuga.pyして、

Crontab

110 * * * * /home/hoge/fuga.py

と書く。

投稿2019/01/30 06:37

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

expy

2019/01/30 07:15

できました。 cronの記述が長くなりますが、pythonファイルのシバンは削除できるんですね。 ベストアンサーにさせて頂きたいと思います。 ありがとうございました。
otn

2019/01/30 08:15

shbangは、そのファイルを直接実行したときだけ有効です。 例: /home/hoge/fuga.py とか、 ./fuga.py とか。 python /home/hoge/fuga.py と書くと、#!/bin/bash と書いてあってもpythonが実行します。
expy

2019/01/30 08:19

なるほど。 勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問