【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]$

 

一応動いているようです。

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人