@j0083

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

仮想環境を作ろうとしただけなのに...泣

仮想環境を作ろうとしただけなのに...

以下のURL通りに仮想環境を作っていこうとして,一度は成功してpipfile.lockも作成することができたのですが,pythonのバージョン変えてない等と思い「色々」いじってみたりしたら今までできていたpipfile.lockすら作ることが出来なくなってしまいました...

以下のコードを本来実行すると必要なライブラリをインストールすることができpipfile.lockが作成されるはずなのですが...

 pipenv install -r requirements.txt

以下のようなエラーが出てしまいました.

Resolving dependencies...
Locking Failed!

CRITICAL:pipenv.patched.pip._internal.resolution.resolvelib.factory:Could not find a version that satisfies the requirement cv2 (from versions: none)
[ResolutionFailure]:   File "C:\Users\81805\AppData\Local\Programs\Python\Python310\lib\site-packages\pipenv\resolver.py", line 833, in _main
[ResolutionFailure]:       resolve_packages(
[ResolutionFailure]:   File "C:\Users\81805\AppData\Local\Programs\Python\Python310\lib\site-packages\pipenv\resolver.py", line 781, in resolve_packages
[ResolutionFailure]:       results, resolver = resolve(
[ResolutionFailure]:   File "C:\Users\81805\AppData\Local\Programs\Python\Python310\lib\site-packages\pipenv\resolver.py", line 760, in resolve
[ResolutionFailure]:       return resolve_deps(
[ResolutionFailure]:   File "c:\users\81805\appdata\local\programs\python\python310\lib\site-packages\pipenv\utils\resolver.py", line 1103, in resolve_deps
[ResolutionFailure]:       results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
[ResolutionFailure]:   File "c:\users\81805\appdata\local\programs\python\python310\lib\site-packages\pipenv\utils\resolver.py", line 892, in actually_resolve_deps
[ResolutionFailure]:       resolver.resolve()
[ResolutionFailure]:   File "c:\users\81805\appdata\local\programs\python\python310\lib\site-packages\pipenv\utils\resolver.py", line 687, in resolve
[ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: No matching distribution found for cv2

もしかしたら...

一度「色々」試した中に仮想環境にopencvをインストールさせようと思い,requirements.txt内にcv2と入力したことがあり,そのときからこのエラーがでるようになった気がしなくもありません.ファイルも削除してしまい,なかったことにしてしまっているのですが,もしかしたらこの表記がいけなくてエラーになっているのでしょうか...
分かる方いましたら教えていただけますでしょうか。
一回はできたのに...泣

試したこと

エラー文に書いてあるようにコードを打ってはみました

pipenv install --skip-lock

以下が結果です

Installing dependencies from Pipfile...
An error occurred while installing cv2! Will try again.
An error occurred while installing sys! Will try again.
An error occurred while installing opencv! Will try again.
An error occurred while installing flask! Will try again.
An error occurred while installing scipy! Will try again.
Installing initially failed dependencies...
[pipenv.exceptions.InstallError]: ERROR: Could not find a version that satisfies the requirement cv2 (from versions: none)
[pipenv.exceptions.InstallError]: ERROR: No matching distribution found for cv2
ERROR: Couldn't install package: [Requirement(_name='cv2', vcs=None, req=NamedRequirement(name='cv2', version='', req=Requirement.parse('cv2'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=cv2, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=cv2)>), markers=None, _specifiers='', index=None, editable=False, hashes=frozenset(), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=cv2, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=cv2)>, _ireq=None), Requirement(_name='sys', vcs=None, req=NamedRequirement(name='sys', version='', req=Requirement.parse('sys'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=sys, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=sys)>), markers=None, _specifiers='', index=None, editable=False, hashes=frozenset(), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=sys, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=sys)>, _ireq=None), Requirement(_name='opencv', vcs=None, req=NamedRequirement(name='opencv', version='', req=Requirement.parse('opencv'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=opencv, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=opencv)>), markers=None, _specifiers='', index=None, editable=False, hashes=frozenset(), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=opencv, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=opencv)>, _ireq=None), Requirement(_name='flask', vcs=None, req=NamedRequirement(name='flask', version='', req=Requirement.parse('flask'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=flask, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=flask)>), markers=None, _specifiers='', index=None, editable=False, hashes=frozenset(), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=flask, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=flask)>, _ireq=None), Requirement(_name='scipy', vcs=None, req=NamedRequirement(name='scipy', version='', req=Requirement.parse('scipy'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=scipy, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=scipy)>), markers=None, _specifiers='', index=None, editable=False, hashes=frozenset(), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=scipy, path=None, uri=None, extras=(), markers=None, vcs=None, specifier=None, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=scipy)>, _ireq=None)]
 Package installation failed...

0 likes

2Answer

  1. 回答者はエスパーではないので「色々」ではわかりません
    実行したコマンドやrequirements.txt中身(できれば変更前の動いていた時のものも)例示してください。
    おそらくrequirements.txtを手で書き換えてしまったのだと思いますが、よくわからないうちはこのファイルは手で操作しないでください。

  2. 仮想環境は作り直せることがメリットです
    pipenv内で発生した問題は、ファイルを消したり最悪フォルダを変えたりして、新しく実行し直せばキレイな状態からやり直せるはずです。試しましたでしょうか?

  3. エラーは一度ググってみてください
    「Could not find a version that satisfies the requirement cv2」でぐぐるとcv2というパッケージは存在しない、正しい名前でインストールしとろ記事がいくつも出てきます。
    https://teratail.com/questions/88045
    こちらが問題ではないでしょうか。

どうぞよろしくお願いします

2Like

Comments

  1. なお他の質問でも記載してますが、pythonのインストール関係は面倒くさいことこの上ないので、OSレベルからの仮想環境化を個人的にはすべての人にオススメしています。
  2. @j0083

    Questioner

    回答していただきありがとうございます
    説明不足な質問をしてしまい申し訳ございません
    先ほど解決いたしまして,pipfileを作った仮想環境下ではない所にあったことが原因でした.何しているか分からないまま進めるのは良くないと思い,今後は一つ一つ整理してから実行していこうと思います.

リンク先を読まれているので既知の事かもしれませんが・・・

仮想環境はアプリ毎に作成することで、パッケージ(pip)の管理がしやすくなります。
例えば、不要になったアプリを削除したい場合は、仮想環境のディレクトリごと削除してしまえば、仮想環境にインストールしたパッケージも綺麗サッパリ削除してくれます。

なので、良く分からなくなったり、解決できない謎のエラーが発生した場合は、仮想環境を一から作り直すと自分のスキルアップ(慣れ)にも繋がるので良いです。

エラーの解決方法は、大体最後の行にエラーの内容が書いてあるので、その文をコピーして調べると案外出てきます。(最後の行だけでは解決できない場合もありますが)

エラーは英語で抵抗あるかもしれませんが、エラーを読むようにするとスキルアップも早くなると思いますよ\(^o^)/

2Like

Comments

  1. @j0083

    Questioner

    回答していただきありがとうございます.
    先ほど解決いたしまして,pipfileを作った仮想環境下ではない所にあったことが原因でした
    エラーが出てきてくれることにありがたく思い,今後もめげずに精進していこうと思います.orz

Your answer might help someone💌