LoginSignup
3
3

More than 5 years have passed since last update.

pythonのpackageのバージョンが違っていた時の対処法[pyenv][pip]

Posted at

概要

pyenvでpythonのversion管理をしていますが、globalで使っていた本体のパッケージがconflictを起こしたので、それに対する対処法を書いて起きます。プロジェクトごとに仮想環境作れば問題ない話ですが。。

動作環境

Mac OS Mojave 10.14.4
python 3.6.5
pyenv 1.2.5
pip3 19.1

エラー

Traceback (most recent call last):
  File "/Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 574, in _build_master
    ws.require(__requires__)
  File "/Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pkg_resources/__init__.py", line 783, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (pycodestyle 2.4.0 (/Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages), Requirement.parse('pycodestyle<2.4.0,>=2.0.0'), {'flake8'})

最後の一文を見ればわかりますが、どうもあるパッケージがconflictを起こしているみたいです。

解決策

現在のパッケージをuninstallして、新しく指定されているバージョンの範囲内のパッケージをinstallします。

$ pip3 uninstall pycodestyle
Uninstalling pycodestyle-2.4.0:
  Would remove:
    /Users/***/.pyenv/versions/3.6.5/bin/pycodestyle
    /Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pep8.py
    /Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pycodestyle-2.4.0.dist-info/*
    /Users/***/.pyenv/versions/3.6.5/lib/python3.6/site-packages/pycodestyle.py
Proceed (y/n)? y
  Successfully uninstalled pycodestyle-2.4.0

要求されているバージョンを再インストールします。

$ pip3 install pycodestyle==2.3.0                                                                                                                                    
Installing collected packages: pycodestyle
Successfully installed pycodestyle-2.3.0

globalで色々なプロジェクトのパッケージをごちゃごちゃにしていたら、このようなことが起こりかねないので、プロジェクトごとにパッケージを分けて管理するようにしたら良いと思います。

3
3
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
3
3