2018-07-27

python, 外部プログラムを認識しない

python のプログラムの1行目に宣言されているコード

#!/usr/bin/python3.5

の バージョンを表す数字を気にすることがない。
通常実行する場合、3.5であろうが3.6でもエラーが出力されない。

しかし、外部プログラムとして呼び出す場合、使用中の python バーションと一致していなければ、次のエラーが出力される。

呼び出されるプログラム名: not found

具体的には

呼び出されるプログラム

▶ abc.py
#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
import sys

args = sys.argv 
print ("予選リーグ突破 おめでとう! ")
# args[0]  フルパスのプログラム名
# args[1] プログラム名への文字渡し
print ("えっ 何!  ", args[1])

呼び出す方のプログラム

▶ efg.py
import os
import subprocess

mdir = os.path.abspath(os.path.dirname(__file__)) + "/"
sub_mdir = "lib_a/"
pro_name = "abc.py"

# 外部プログラム呼び出し 戻り値  result 
result = subprocess.run(mdir + sub_mdir 
+ pro_name + "  大迫半端ない", shell=True)
print (result)

# 正常に終了したときの 戻り値
# CompletedProcess(args=('/home/220.../...../
lib_a/abc.py', '大迫半端ない'), returncode=0)
if result.returncode != 0:
# エラー時の処理 returncode が 0 以外
 print ("こらぁ〜 エラーいことになっとるぞ!")

使用のpython バージョンが 3.6 であれば、次のエラーが出力される

/b......: 1 /home/22...../......../lib_a/abc.py: not foundCompletedProcess(args='/home/22...../......../lib_a
/abc.py 大迫半端ない', returncode=127)
こらぁ〜 エラーいことになっとるぞ!

abc.py は見つからない( not found )というエラーが返ってくる。

 #!/usr/bin/python3.6


と書き換えるとことによって、エラーが解消される。

正常に実行されれば

予選リーグ突破 おめでとう! abc.py
えっ 何!   大迫半端ない
CompletedProcess(args='/home/220.../.../lib_a/abc.py 大迫半端ない', returncode=0)


と正常に終了する。



2018-07-09

xfce,ウィンドウを最大化させない

OS :  Linux Mint 19 xfce

ディスクトップ上でウィンドウをマウスでドラッグしながら、ポインタを最上部に移動させると、ウィンドウが最大化する。また、最左、最右では、ウィンドウが上下および左右のサイズが画面の半分のサイズになる。
便利そうだが、この動作をオフにするには、設定エディターから操作できる。

設定エディターの起動
メニューから設定マネージャー >> 設定エディターのアイコンをクリック、メニュ項目を選択する。


設定エディターからの設定方法

チャンネル  :  xfwm4
プロパティ  :  tile_on_move
値  :  FALSE



2018-07-07

spyder3のエディタとコンソールのフォントサイズを変更する

python3 の統合開発環境である spyder3。

エディタとコンソールのフォントサイズを変更するには、

メニュの ツール >> 設定 にある 設定設定パネル内から

「一般を選択」

「外見」タブ
フォント項目から フォントサイズを設定する。

設定項目は、

「プレーンテキスト」 (エディタとコンソール)
「リッチテキスト」 (ヘルプなどの使用方法についての文字)

がある。

[  環境 ]
OS : Linux Mint 19 xfce (64bit)

spyder3インストール後にAnacondaのpython3ライブラリを使用する設定

pythonのライブラリで有名なAnaconda3(以下 Anaconda)は、プログラムを作成する上で便利である。
ほとんどのライブラリが含まれている。

■spyder3が起動しない


python3の統合開発環境であるspyder3(以下 spyder)は、Anaconda(Anaconda3-5.2.0-Linux-x86_64を使用)やLinuxのソフトウェアに含まれている。
ターミナルからAnacondaのspyderを立ち上げようとしたところ、

Segmentation fault (コアダンプ)

と、初期の表示だけで本体は立ち上がらなかった。
メモリのエラーである。

■LinuxからspyderをインストールしてAnacondaのライブラリを指定


ソフトウェアの管理からspyderをインストールした。
起動させると、pythonのライブラリがAnacondaから読み込まれていない。

spyderからAnacondaのライブラリを読み込む方法は以下の通り

1) spyderを起動

2) ツール >> 設定 と設定パネルを表示

3) 設定パネルから [ Pythonインタープリター ] >> [ Spyderコンソールで使用するPythonインタープリターの選択 ] から

以下のPythonインタープリターを使う」 を選択

4) インタープリターのファイル名の指定は、Anacondaフォルダー内にある次のファイルを指定する

/home/ユーザー名/anaconda3/bin/python3.6

(一般的にanaconda3フォルダーはユーザー名のフォルダー第一階層ににインストールされている)

5) OK ボタンで設定を閉じ、再起動する。

設定作業終わり

■成功したか確認


すると、起動直後のコンソール内に

Python 3.6.5 |Anaconda, Inc.・・・・・

が表示されていればAnacondaのライブラリ指定終了である。

試しに、 numpy をインポートしてみる。

[  環境 ]
OS : Linux Mint 19 xfce (64bit)