【Python】venv 環境で作成した Python 3.6 プログラムをシェルスクリプトから実行したい
シェルスクリプトを作成し、その中で venv で仮想環境に移行して Python プログラムを実行する方法です。
これをすれば、1つのシェルスクリプトで複数環境の Python プログラムが実行できます。
ただ今のところそんな要件はありませんが。
source コマンドで仮想環境に移行する
以下のようなシェルスクリプトを作成しました。
[test@SAKURA_VPS scraping]$ vi test1.sh
#!/bin/sh
source /home/test/pyenv/bin/activate ← ここで activate を
python /home/test/pyenv/scraping/test.py
|
実行権限を割り当てます。
[test@SAKURA_VPS scraping]$ chmod +x test1.sh
[test@SAKURA_VPS scraping]$ ls -l test1.sh
-rwxrwxr-x 1 test test 91 12月 16 09:17 test1.sh
|
test.py プログラムの内容
test.pyプログラムの内容です。
[test@SAKURA_VPS scraping]$ cat test.py
# -*- coding: utf-8 -*-
# ファイルをオープンして果物を配列(リスト)に代入する
f = open(‘test.txt’, ‘r’)
# 改行コードで分割することを明示
fruits_list = f.read().split(‘\n’)
print(fruits_list)
print(‘リストの要素数’)
print(len(fruits_list))
# 配列 fruits_list を3×3の二次元配列に格納する
# 二次元配列の初期化
fruits_list_2dimensions = [[0 for column in range(3)] for row in range(3)]
z = 0
for x in range(3): # 横のライン
print(x)
for y in range(3): # 縦のライン
print(y)
fruits_list_2dimensions[x][y] = fruits_list[z]
z = z + 1
# 連結用の変数
connected_var = “”
# 二次元配列の中身を出力
for x in fruits_list_2dimensions:
connected_var = connected_var + x[0]
connected_var = connected_var + x[2] + ‘\n’ # 順番の入れ替え、改行の挿入
connected_var = connected_var + x[1] + ‘\n’
print(connected_var)
# ファイルを閉じる
f.close()
[test@SAKURA_VPS scraping]$
|
プログラム実行結果
プログラムを実行します。
[test@SAKURA_VPS scraping]$ ./test1.sh
[‘りんご’, ‘みかん’, ‘ぶどう’, ‘なし’, ‘いちじく’, ‘いちご’, ‘すいか’, ‘もも’, ‘メロン’, ”]
リストの要素数
10
0
0
1
2
1
0
1
2
2
0
1
2
りんごぶどう
みかん
なしいちご
いちじく
すいかメロン
もも
[test@SAKURA_VPS scraping]$
|
一応動いているようです。
コメント