実現したいこと
windows10でpythonを実行するとpowerShellの画面のようなblackスクリーンが出現し、
複数のpyファイルの実行過程が終了時まで継続して表示されますが、
Linuxではその画面が出現せず、途中過程がわからず、正常に実行されているか不安です。
windowsの場合のような画面に表示したいのですが、どのようにしたら良いのでしょうか?
発生している問題・分からないこと
pyファイル単体ならIDLEでファイルを開き
Run ⇒Run module
で進行過程が把握できますが、複数ファイルとなると表示されません
該当のソースコード
#------------------------------------------------------- # フォルダの上の階層を検出する (pyPackの下層に保存してます) | #------------------------------------------------------- def TargetPath(path,key): cnt = 0 try: int(key) if key == 0: path = os.path.basename(path) elif key > 0: while cnt < key: cnt+= 1 path = os.path.dirname(path) if path == '/': result = 'error' else: result = path except ValueError: while cnt < 15: cnt+= 1 result = os.path.basename(path) if result == key: result = path break else: path = os.path.dirname(path) result = 'error' return result #------------------------------------------------------- # より詳細なsample.py | #------------------------------------------------------- import os import sys # pyPackフォルダ(モジュール群)を読みにいっています sys.path.append(os.path.join(os.path.dirname(__file__), '../../../../pyCode')) import pyPack import time import datetime import glob import shutil import subprocess import tkinter as tk title = 'sample' scnd = 2 xLen = 60 # モジュールを呼出してpopUpメニューを表示 pyPack.modu.PopUp(scnd,'Start To '+title,250,70) # モジュールを呼出してフルパスを取得する # Windowsの場合 C:/○○/pyBOO # linuxの場合 /home/ユーザー名/○○/pyBOO # ここが問題の絶対パスを作成するモジュールです rtDir = pyPack.modu2.TargetPath(os.getcwd(),'pyBOO') # 現在のコードの在るパス here = rtDir +'/pyCode/cMarket/FX/USDJPY' # モジュールを呼出して、処理結果を格納するパス(文字列のみ)の作成 there = pyPack.modu2.IsThere(here) # モジュールを呼出して、thereのフォルダを作成する pyPack.modu2.DirMaker(there) # 何かしらの処理をして'there'に格納する #---- モジュールを呼出し、osがWindowsの場合の処理 if pyPack.modu2.HowOS(1) == 'windows': # rtDir = C:/share/pyBOO print(rtDir) # there = C:/share/pyBOO/pyData/dMarket/FX/USDJPY print(there) # paramikoにてLinuxサーバーへファイル転送する処理 #---- モジュールを呼出し、osがLinuxの場合の処理 elif pyPack.modu2.HowOS(1) == 'linux': # rtDir = '/home/ユーザー名/share/pyBOO' print(rtDir) # there = '/home/ユーザー名/share/pyBOO/pyData/dMarket/FX/USDJPY' print(there) # smbClientにてLinuxサーバーへファイル転送する処理 # Windowsは'python' Linuxは'python3'と出力 pyType = pyPack.modu2.HowOS(3) #---- 次のnext.pyの処理へ (ここがTerminalでエラーになる元凶です) #---- 絶対パスを指定すればTerminalでも実行できました nPath = here+'/subDir/next.py' subprocess.Popen([pyType,nPath]) # モジュールを呼出してpopUpメニューを表示 print('\n[終了]',title,'\n') pyPack.modu.PopUp(scnd,title+' Closing',250,70)
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
mx-linuxのTerminalで
$ python3 /home/test/samle.py
と実行すとそのファイルのみ実行し、表示できますが、
メニュー画面をtkinterで作成して次のファイルを実行すると
python3: can't open file '/home/test/next.py: [Errno 2] No such file or directory
となります。
補足
特になし
回答2件
あなたの回答
tips
プレビュー