質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

467閲覧

型ヒントとmypyについて

cn-yf

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2023/01/22 06:25

前提

スラスラ分かるPython2という書籍の型ヒントという章で、mypyを用いて型のチェックをしてみるという作業があるのですがエラーになってしまします。さらに自身の理解があっているのかもわかっていない状態です。

実現したいこと

  • mypyの使い方を理解する。

発生している問題・エラーメッセージ

mypy : 用語 'mypy' は、コマンドレット、関数、スクリプト
ファイル、または操作可能なプログラムの名前として認識され
ません。名前が正しく記述されていることを確認し、パスが含
まれている場合はそのパスが正しいことを確認してから、再試
行してください。
発生場所 行:1 文字:1

  • mypy try_mypy.py
  • + CategoryInfo : ObjectNotFound: (mypy:Stri ng) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

該当のソースコード

Python

1from typing import Optional 2 3def divide_num(a: int, b: int) -> Optional[int]: 4 if b == 0: 5 return None 6 return a // b 7 8divide_num(10, "3") 9 10#この下部分はターミナル場です 11 12pip install mypy 13 14mypy try_mypy.py #try_mypy.pyは上部分のファイル名

試したこと

$から始めてみたり、何度もやり直してみましたが結果は変わりませんでした。

###詳細
作業の流れとしてはtry_mypy.pyというファイルを作成した後、保存して新しいターミナルで pip install mypy と入力した後 mypy try_mypy.py と入力しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Demerara

2023/01/22 15:04

恐らく複数の Python がインストールされています。使っていないバージョンの Python は削除しておきましょう。もしくは仮想環境を構築してから使いましょう。 とりあえず、python -m pip install mypy を実行したのち、再度 mypy try_mypy.py を実行してみてください。 また、python のバージョンを教えてください。mypy を使うのであれば、python 3.7 以上である必要があります。
cn-yf

2023/01/22 16:18 編集

コメントありがとうございます。 複数のPythonがインストールされているというのはパソコンにバージョンの異なるPythonのアプリが入っているということであっていますでしょうか。 設定のアプリと機能の一覧にはpython 3.11のみpythonと名前のつくアプリは残らないようにいたしました。またPython使用時にはVisual Stadio CodeとPowerShellを起動させています。 その上で教えていただきました手順でターミナル上で実行してみましたところ、以下のようなエラーがでてしまいました。 これはまだきちんとほかのバージョンのPythonがアンインストールできていないのでしょうか、、 また、拡張機能をいくつか入れているのですが、関係があったりしますでしょうか? 長々と失礼しました。 ------------------------------------------------------------------------ PS C:\Users\zhiza\OneDrive\ドキュメント\surasura-python\chapter10> python -m pip install mypy Requirement already satisfied: mypy in c:\users\zhiza\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (0.991) Requirement already satisfied: typing-extensions>=3.10 in c:\users\zhiza\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (from mypy) (4.4.0) Requirement already satisfied: mypy-extensions>=0.4.3 in c:\users\zhiza\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (from mypy) (0.4.3) PS C:\Users\zhiza\OneDrive\ドキュメント\surasura-python\chapter10> mypy try_mypy.py mypy: The term 'mypy' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. ----------------------------------------------------------------------
Demerara

2023/01/23 07:54 編集

その通りです。ログを見る限り正常に見えます。 試しに、python -m mypy try_mypy.py としてみてください。 また、python --version の結果も教えてください。
cn-yf

2023/01/23 12:09

ありがとうございます。python -m mypy try_mypy.py と入力したところ以下のように表示されました。どういうことなのでしょうか、、。 PS C:\Users\zhiza\OneDrive\ドキュメント\surasura-python> python -m mypy try_mypy.py mypy: can't read file 'try_mypy.py': No such file or directory PS C:\Users\zhiza\OneDrive\ドキュメント\surasura-python> また、python --version と入力した結果はこのような感じになりました。 Python 3.11.1
Demerara

2023/01/23 21:24

実行している場所が前回と違いますね。try_mypy.py というファイルが存在する chapter10 というディレクトリの中で実行してください。 どうやら、mypy が変な場所にインストールされてしまっているようなので、一度アンインストールして再度インストールするとよろしいかと思います。再インストール後に、~/AppData/Local/Python/Python311/Lib/site-package の中に mypy というディレクトリが存在するか確認してみてください。そこにあれば、ターミナルで単に "mypy ファイル名" とするだけで実行できます。 もし、そこにインストールされないようであれば、Python も一度アンインストールして再インストールした方がいいかもしれません。
cn-yf

2023/01/24 10:04

一度mypyを再インストールしてみたのですが、pip show mypyをしてみたのですがLocation: C:\Users\zhiza\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages となっていました。 ですのでpythonを再インストールをしてみようと思います。 追加で質問なのですが、pip install mypy をするところはターミナルを開いてすぐでいいのでしょうか?
cn-yf

2023/01/24 11:09

何度もすみません。vscodeとpythonを再インストールしましたが、再度vscodeを開くと履歴が復元されていました。これはあっていますでしょうか?またmypyをダウンロードしてみましたがうまくいきませんでした、、、。 rasura-python> pip install mypy Collecting mypy Downloading mypy-0.991-cp311-cp311-win_amd64.whl (8.7 MB) ━━━━━━━━ 8.7/8.7 8.8 eta 0:00:00 MB MB/s Collecting typing-extensions>=3.10 Downloading typing_extensions-4.4.0-py3-none-any.whl (26 kB) Collecting mypy-extensions>=0.4.3 Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB) Installing collected packages: mypy-extensions, typing-extensions, mypy WARNING: The scripts dmypy.exe, mypy.exe, mypyc.exe, stubgen.exe and stubtest.exe are installed in 'C:\Users\zhiza\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed mypy-0.991 mypy-extensions-0.4.3 typing-extensions-4.4.0 のように表示されたのですがうまくmypyはダウンロードできていないのですかね?
Demerara

2023/01/24 15:32

'C:\Users\zhiza\AppData\Local\Package\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts' という場所にインストールされたけど、パスが通ってませんよというお知らせが出てます。このパスを環境変数に登録すれば、mypy がどこからでも使えます。 ただ、自分は見たことがないパスなので、Python のインストール方法が違うのかなと思います。 と思ってたら、回答が付いてますね。Microsoft ストア版があるとは知りませんでした。回答の通り実行すれば mypy は問題なく使えるはずです。
cn-yf

2023/01/25 04:19

重ね重ね本当にありがとうございます! やっとmypyを実行することができました。Pythonの勉強を始めてまだ日が浅いため心細かったのですが、教えていただけたことが心強かったです。
guest

回答1

0

ベストアンサー

Windows用のAnacondaではない公式っぽいPythonも二種類インストール方法があって,
一つはMicrosoftストア,二つ目は公式インストーラです。
pipでインストールした時に

WARNING: The scripts dmypy.exe, mypy.exe, mypyc.exe, stubgen.exe and stubtest.exe are installed in 'C:\Users\zhiza\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts' which is not on PATH.

とあるので,Microsoftストアからインストールしたものと思われます。

この場合,C:\Users\zhiza\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts
に手動でパスを通さないと,mypy.exeが実行できません。

設定で「環境変数を編集」と入力して出てくるものを開いた画面で,
上側のユーザー環境変数の中の「Path」を選んで「編集」を押し,
表示される画面で,「新規」を押しC:\なんちゃら\Scriptsのパスをコピペして「OK」を押して下さい。

これで再ログインし直すと,ひょっとしたらうまくいくかもしれません。

投稿2023/01/24 11:55

ujimushi_sradjp

総合スコア2091

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cn-yf

2023/01/25 04:14

パスを通さないとだめだったのですね、インストールの方法に複数あることも知りませんでした。教えていただいた方法でやってみたところ書籍内の通りに表示され、mypyを使うことができました。ずっとつまずいていて先に進めなかったのですごく嬉しいです。本当にありがとうございます。 無知で申し訳ないのですが、今回行った C:\ ~ \Scripts にパスを通すというのはどのような意味があったのですか?ご回答いただけると幸いです。
ujimushi_sradjp

2023/01/25 12:40

個人的に再質問には答えない方針なのですが,一応情報だけ。 https://docs.python.org/ja/3/using/windows.html#the-microsoft-store-package を見れば分かると思うのですが,本来mypy等,実行形式の拡張は C:\Users\User\AppData\Local\Programs\Python\Python311\Scripts に置かれて,公式インストーラでインストールしたならここにpipコマンドがあってパスが通っているのですが, ストア版はこのパスが「変なパスに化ける」ので,あえてパスを通してないというところです。 https://docs.python.org/ja/3/using/windows.html を見ると初心者は公式インストーラを使った方が問題が少ないとは思いますが,まぁ人それぞれですかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問