前提・実現したいこと
下記のソースコードに記載のあるシェルスクリプトを実行すると、下記のエラーメッセージが表示されます。どうやらpythonで使用しているライブラリがシェルスクリプトから呼び出せてないみたいです。どうしたらライブラリを呼び出せるのか、ご教示いただきたく存じます。
発生している問題・エラーメッセージ
File "/hoge.py", line 1, in <module> ImportError: No module named numpy import numpy as np
該当のソースコード
test.sh
#!/bin/sh /usr/bin/python /hoge.py
hoge.py
python
1import numpy as np 2import glob 3from netCDF4 import Dataset 4import csv 5try: 6 # Python 2 7 from itertools import izip 8except ImportError: 9 # Python 3 10 izip = zip 11from pytz import timezone 12from datetime import datetime 13 14utc_now = datetime.now(timezone('UTC')) 15# print(utc_now) 16utc_year = utc_now.strftime("%Y") 17utc_month = utc_now.strftime("%m") 18utc_day = utc_now.strftime("%d") 19utc_monthday = utc_month + utc_day 20 21dataDir = "../nc/%s/%s/"%(utc_year, utc_monthday) 22csvfile = "../csv/isslis_flashloc_test.csv" 23 24files = glob.glob(dataDir+'*.nc') 25 26flash_lat = np.array([]) 27flash_lon = np.array([]) 28flash_TAI93_time = np.array([]) 29 30for i in files: 31 datafile = Dataset(i) 32 33 flash_lat_check = datafile.variables.get('lightning_flash_lat', 'None') 34 flash_lon_check = datafile.variables.get('lightning_flash_lon', 'None') 35 flash_TAI93_time_check = datafile.variables.get('lightning_flash_TAI93_time', 'None') 36 37 if not flash_lat_check == 'None': 38 flash_lat = np.concatenate([flash_lat,datafile.variables['lightning_flash_lat'][:]]) 39 if not flash_lon_check == 'None': 40 flash_lon = np.concatenate([flash_lon,datafile.variables['lightning_flash_lon'][:]]) 41 if not flash_TAI93_time_check == 'None': 42 flash_TAI93_time = np.concatenate([flash_TAI93_time,datafile.variables['lightning_flash_TAI93_time'][:]]) 43 44with open(csvfile, 'w') as myfile: 45 writer = csv.writer(myfile) 46 writer.writerows(izip(["flash_lat"], ["flash_lon"], ["flash_TAI93_time"])) 47 writer.writerows(izip(flash_lat, flash_lon, flash_TAI93_time)) 48 print ("making csv file is compleated") 49 50print ("information: flash_lat.size is %s, flash_lon.size is %s, flash_TAI93_time.size is %s"%(flash_lat.size, flash_lon.size, flash_TAI93_time.size)) 51
Dockerfile
FROM python:3 RUN pip install --upgrade pip RUN pip install --upgrade setuptools RUN python -m pip install numpy RUN python -m pip install glob3 RUN python -m pip install netCDF4 RUN python -m pip install csv23 RUN python -m pip install picklable-itertools RUN python -m pip install pytz RUN python -m pip install datetime2 RUN apt-get update RUN apt-get install -y vim RUN apt-get install -y cron
docker-compose
version: '3' services: python: build: context: ./ dockerfile: Dockerfile_python tty: true container_name: kaminari_python volumes: - ./:/app/:rw working_dir: /app/kaminari_python
###実行手順
実験段階ですので、整理されておりませんが、
/etc/cron.d/simple-cron
* * * * * root /app/test.sh
このようにして、cronでシェルスクリプトを動かし、pythonを起動させているような状態です。
回答1件
あなたの回答
tips
プレビュー