コマンドラインのソフト
pythonでコマンドライン型のソフトを作ってるのですが、コンパイルしてifの条件に引っかかるように入れたんですけど、以下のように表示されて終わります
発生している問題・エラーメッセージ
Traceback (most recent call last): File "command_line.py", line 14, in <module> File "<string>", line 1, in <module> NameError: name 'pc' is not defined [16928] Failed to execute script command_line
該当のソースコード
python
1# 参照するリストの初期化 2import socket 3# ホスト名を取得、表示 4host = socket.gethostname() 5print(host) 6loor=0 7# ipアドレスを取得、表示 8ip = socket.gethostbyname(host) 9print(ip) # 192.168.○○○.○○○ 10# 無限ループ 11while True: 12 comma=input("<" + ip + ">") 13 if comma == "count" : #カウント 14 print(loor) 15 loor = loor + 1 16 comma = "" 17 else : #ポート番号 18 if comma == "--port" : 19 print("50605") 20 comma = "" 21 else : 22 if comma == "--pc" : 23 host = socket.gethostname() 24 print("host:" + host) 25 # ipアドレスを取得、表示 26 ip = socket.gethostbyname(host) 27 print("global_ip:" + ip) # 192.168.○○○.○○○ 28 comma = "" 29 else : 30 if comma == "help()" : 31 print("count 数字を数える\n--port ポート番号\n--pc hostとgrobal_ipを取得\n") 32 comma = ""
試したこと
コンパイル5回したんですけどね...
visual studio codeだと普通にできるんですけどね
補足情報(FW/ツールのバージョンなど)
ver:python3.7
スクリプトは問題なく実行できました。
このスクリプトが command_line.py なのですか?
エラーメッセージは、14行目で未定義の変数pcを使っている、ですが、変数pcが見当たりません。
Pythonはコンパイル不要なスクリプト言語ですけど、何を使ってどのようにコンパイルしたのですか?
if comma == "--pc" :
ですか?
""
は定数ですよ
python3.7でコンパイルしました
pythonはコンパイル型言語ではなくインタープリタ型スクリプト言語です。
PythonインタープリタがPythonスクリプトを読み込んで実行します。
スクリプトを exe実行ファイルに変換するツールはありますが、何かツールを使ってexeファイルにコンパイルしたのですか?
テキストエディタで command_line.py を開いて、内容が正しいか再確認してみてください。
「ifの条件に引っかかるように入れたんですけど」とありますが、何をして何をいれたのでしょうか?
このコードでこのエラーは出ないので、どこかで取り違えのミスをしています。
えーとですね
can110:commaにinputしてるじゃないですかをれを13とかでifしてます
otn:exe化すると何故かpython独自のエラー起きるんですよね
```
Traceback (most recent call last):
File "command_line.py", line 14, in <module>
File "<string>", line 1, in <module>
NameError: name 'pc' is not defined
[16928] Failed to execute script command_line
```
これですね
ソースをダブルクォーテーションで囲ってるから文字列とその他のコードが逆になってるとかその手のことでしょうよ。自分のやった手続きをちゃんと書けば済む話。
取り違えはまだ判明しなのでしょうか?
やったことを確認するだけなので、難しいことではないと思うのですが。
記録がないのなら、やり直せばいいです。
プログラムとエラーメッセージが別物では、他人には調査のしようが無いです。
exe化 とはどんな操作ですか?
なんという名前のexeファイルが作成されるのですか?
この操作をしたのですか?
https://techacademy.jp/magazine/18963
以下が不明確で理解できませんので説明ください。
「commaにinputしてるじゃないですか」にて具体的に、どんな値がcommaに入ったのですか?
「~13とかでifしてます」における「13」とは何ですか?
また「ifしてます」とは具体的に何が何をしていることを指していますか?
あなたの回答
tips
プレビュー