dポイントプレゼントキャンペーン実施中!

(venv) Q:\python example3.py
だと問題なく動作します。

しかし、以下だとエラーが出る。なぜでしょうか?
どちらも仮想環境の中で実行しているつもりだったのですがそうはなった無いのでしょうか?
ただ、他のプログラムだとこれで動くものもありいまいち良く分からない感じです。

(venv) Q:\>example3.py
Traceback (most recent call last):
中略
import clip
ModuleNotFoundError: No module named 'clip'

A 回答 (2件)

> python example3.py


だと、その時点で環境変数PATHを参照して見つかったPythonを実行します。
where python で、どのpythonが実行されるのか表示されます。表示が複数行の場合は先頭の物。


> example3.py
だと、拡張子に関連付いているプログラムが実行されますが、これが上記と異なるPython.exeに関連付いているのでしょう。

拡張子関連付けを確認するのは面倒です。
assoc .py を実行すると、
.py=Python.File のように表示されます。=の右辺はインストールの仕方で異なる場合がある。その右辺をコピペして、
ftype Python.File 等を実行すると、
Python.File="C:\WINDOWS\py.exe" "%L" %*
のように表示されたとしたら、py.exe に関連付いています。

表示が上記であった場合は、
> example3.py
を実行すると実際には、
C:\WINDOWS\py.exe example3.py
が実行されます。これが「拡張子の関連付け」です。

複数Pythonを使い分けるvenv等は、PATHをその都度 書き換えることで、場所に応じたPythonを切り替えます(PATHが書き換えられるとwhereで表示されるファイルが異なる)

一方、拡張子関連付けは、venv等はUnix/Linux由来なので、Windows独自である「拡張子関連付け」の考え方が無く、環境切り替えでPATHを書き換える時に同時に拡張子関連付けまできっと変更してないのでしょうね。
    • good
    • 0
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A