0
0

pythonコマンドは使えるが、python3コマンドが使えない

Posted at

はじめに

pythonを使って共同で開発をしていたところ、以下のようなsubprocessでpython3コマンドを使って非同期でファイル実行するコードが動かなかった。

subprocess.run(["python3", os.path.join(script_dir, "hogehoge.py")], check=True)

調べてみたところ、私の環境でpython3コマンドではなく、pythonコマンドでしかpythonを動かすことができない事が原因でした。

一人で開発する分にはコードのpython3という記述をpythonに変えてやるだけで良いのですが、共同開発なのでむやみに変更するわけにもいきません。

そこで今回はpython3コマンドが動かない原因と解決策を調べたのでまとめいきます

python3が動かない原因

基本、windowsではpythonがpython.exeがインストールされていることが一般的です。
一方でLinuxやMac OSのようなUnix系システムではpython2.Xとpython3.Xコマンドが共存することが多いため、pythonはpython2.Xを、python3はpython3.Xを指すよう設定されていることが多いです。

そのため、windows環境ではpythonコマンドが、Mac,Linux環境ではpython3コマンドが使われ、これが今回のエラーの原因のようです。

解決策

python3コマンドを実行したとき、python.exeを叩くよう設定します。
管理者権限を持ったコマンドプロンプトで以下のコマンドを実行します。

where python

ここで出てきたpython.exeのパスをコピー
そして

cd C:\Windows\System32
mklink python3.exe C:\Users\{ユーザーネーム}\AppData\Local\Programs\Python\Python310\python.exe

これでpython3コマンドがpython.exeに紐づけられ、python3コマンドが使えるようになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0