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

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

ただいまの
回答率

88.92%

pipのRequiresに同じパッケージ名が二つある

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 465

Potewo

score 26

概要

donkeycarをmacに入れる際に、pythonのライブラリ周りでエラーが起きました。
moviepyというライブラリにimageioというライブラリが必要なのですが、donkeycarをセットアップする際、moviepyは2.5以上3.0未満のバージョンのimageioが必要だと言われ、その通りにすると、今度はmoviepyは2.0以上2.5未満のバージョンのimageioが必要だと言われ、どちらにしてもうまくいきません。
pip show moviepyを実行すると、

Name: moviepy
Version: 1.0.1
Summary: Video editing with Python
Home-page: https://zulko.github.io/moviepy/
Author: Zulko 2017
Author-email: UNKNOWN
License: MIT License
Location: /Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages
Requires: proglog, tqdm, decorator, imageio, requests, imageio-ffmpeg, imageio, numpy
Required-by: donkeycar


と表示され、*Required*の欄にimageioが二つあります。
前述した内容から考えると、この二つのimageioがそれぞれ違うバージョンなのではないかと思います。

質問内容

どのようにすればdonkeycarを次のステップへ進ませられるかを知りたいです。
現在考えている候補は以下です。

  • imageioの違うバージョンを2つ入れる
  • moviepyをrequireしている元のファイルに手を加える
    この二つかそれ以外の方法で解決する方法を教えていただきたいです。

環境

  • macOS 10.15
  • miniconda3-4.6.14
  • zsh 5.7.1 (x86_64-apple-darwin19.0)
  • Python 3.6.2 :: Continuum Analytics, Inc.

やったこと

donkeycarの公式ドキュメントを参考にしました。
使っているmituhiromatuura/donkey-2.5.1公式からフォークされたものです。)
 
  
https://repo.continuum.io/miniconda/からMiniconda3-4.6.14-MacOSX-x86_64.shをダウンロードし、zsh Miniconda3-4.6.14-MacOSX-x86_64.shでインストール。

以下その後実行したコマンド

cd ~/
mkdir donkeycar_project
cd donkeycar_project
git clone git://github.com/mituhiromatuura/donkey-2.5.1
cd donkey-2.5.1
git checkout master
conda env create -f install/envs/mac.yml
conda init zsh
exit
# いったんログアウトするような指示が表示されたため、いったんログアウトし、再ログインしました。
conda activate donkey
pip install -e .
donkey createcar mycar


最後のdonkey createcar mycarの部分で問題のエラーが出ています。

エラー

以下はpip install -e .を実行した際のエラーを含む出力の途中から最後まで

ERROR: moviepy 1.0.1 has requirement imageio<3.0,>=2.5, but you'll have imageio 2.4.1 which is incompatible.
Installing collected packages: donkeycar, imageio
  Found existing installation: donkeycar 2.5.1
    Uninstalling donkeycar-2.5.1:
      Successfully uninstalled donkeycar-2.5.1
  Running setup.py develop for donkeycar
  Found existing installation: imageio 2.6.0
    Uninstalling imageio-2.6.0:
      Successfully uninstalled imageio-2.6.0
Successfully installed donkeycar imageio-2.4.1


それぞれpipcondaでimageioの様々なバージョンで入れ直した後にdonkey createcar mycarを実行した後のエラー

Traceback (most recent call last):
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 660, in _build_master
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 968, in require
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 859, in resolve
pkg_resources.ContextualVersionConflict: (imageio 2.4.1 (/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages), Requirement.parse('imageio<3.0,>=2.5'), {'moviepy'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ユーザー名/miniconda3/envs/donkey/bin/donkey", line 6, in <module>
    from pkg_resources import load_entry_point
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2985, in <module>
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2971, in _call_aside
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2998, in _initialize_master_working_set
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 662, in _build_master
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 675, in _build_from_requirements
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 854, in resolve
pkg_resources.DistributionNotFound: The 'imageio<3.0,>=2.5' distribution was not found and is required by moviepy
Traceback (most recent call last):
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 660, in _build_master
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 968, in require
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 859, in resolve
pkg_resources.ContextualVersionConflict: (imageio 2.6.1 (/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages), Requirement.parse('imageio<2.5,>=2.0'), {'moviepy'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ユーザー名/miniconda3/envs/donkey/bin/donkey", line 6, in <module>
    from pkg_resources import load_entry_point
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2985, in <module>
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2971, in _call_aside
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 2998, in _initialize_master_working_set
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 662, in _build_master
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 675, in _build_from_requirements
  File "/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg/pkg_resources/__init__.py", line 859, in resolve
pkg_resources.ContextualVersionConflict: (imageio 2.6.1 (/Users/ユーザー名/miniconda3/envs/donkey/lib/python3.6/site-packages), Requirement.parse('imageio<2.5,>=2.0'), {'moviepy'})

最後に

他にも回答に必要な情報がありましたら、できるだけこちらからお伝えしたいと思います。
よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

2つのimageioに依存しているのは以下の理由によるものだと思います。

https://github.com/Zulko/moviepy/blob/master/setup.py#L66-L67 を見ると以下のようなバージョン指定があります。

    "imageio>=2.5,<3.0; python_version>='3.4'",
    "imageio>=2.0,<2.5; python_version<'3.4'",


これはenvironment marker (PEP-496)で、環境によって依存バージョンを切り替える仕組みです。
pipも6.0 (2014年)からこのenvironment markerに 対応 していますし、anacondaがそんなに古いpipを使っているとも思えません。

最後のdonkey createcar mycarの部分で問題のエラーが出ています。

ドキュメント によると donkey createcar --path ~/mycar のように --path オプションが必要ではないでしょうか?
(実際試していないので、これが原因かは分かりませんが・・)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/14 09:02 編集

    回答ありがとうございます。
    同じパッケージ名があるのは仕様だったんですね。
    アドバイスを参考にしてやってみようと思います。

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る