前幾天上傳程式到 openshift 時,發現新版的 six 安裝不上去,原因是 OpenShift 所帶的 six 是 0.3 版,但是無法透過 sudo 等之類的方式來安裝新版,所以想查到底是哪個模組會需要用到新版的 six。上網找了一下,發現 pipdeptree 可以滿足我的需求。
用 pip install pipdeptree 就可以安裝,使用上也很簡單,輸入 pipdeptree 就會列出各個模組的相依性與其所需最低版本。
結果大致是這樣:
Warning!!! Possibly conflicting dependencies found:
* HaodooScraper-Flask==1.0
- python-dateutil [required: ==2.3, installed: 2.6.0]
- six [required: ==1.3.0, installed: 1.10.0]
------------------------------------------------------------------------
alembic==0.6.7
- Mako [required: Any, installed: 1.0.0]
- MarkupSafe [required: >=0.9.2, installed: 0.23]
- SQLAlchemy [required: >=0.7.3, installed: 0.9.8]
cssselect==0.9.1
Flask-APIBlueprint==1.0.0
- flask [required: >=0.11.1,<1.0, installed: 0.12] - click [required: >=2.0, installed: 6.7]
- itsdangerous [required: >=0.21, installed: 0.24]
- Jinja2 [required: >=2.4, installed: 2.9.5]
- MarkupSafe [required: >=0.23, installed: 0.23]
- Werkzeug [required: >=0.7, installed: 0.12.1]
- six [required: <2.0,>=1.10.0, installed: 1.10.0]
HaodooScraper-Flask==1.0
- Flask [required: Any, installed: 0.12]
- click [required: >=2.0, installed: 6.7]
- itsdangerous [required: >=0.21, installed: 0.24]
- Jinja2 [required: >=2.4, installed: 2.9.5]
- MarkupSafe [required: >=0.23, installed: 0.23]
- Werkzeug [required: >=0.7, installed: 0.12.1]
- Flask-Bootstrap [required: Any, installed: 3.3.7.1]
- dominate [required: Any, installed: 2.3.1]
- Flask [required: >=0.8, installed: 0.12]
- click [required: >=2.0, installed: 6.7]
- itsdangerous [required: >=0.21, installed: 0.24]
- Jinja2 [required: >=2.4, installed: 2.9.5]
- MarkupSafe [required: >=0.23, installed: 0.23]
- Werkzeug [required: >=0.7, installed: 0.12.1]
- visitor [required: Any, installed: 0.1.3]
- Flask-JsonTools [required: Any, installed: 0.1.1.post0]
- flask [required: >=0.10.1, installed: 0.12]
- click [required: >=2.0, installed: 6.7]
- itsdangerous [required: >=0.21, installed: 0.24]
- Jinja2 [required: >=2.4, installed: 2.9.5]
- MarkupSafe [required: >=0.23, installed: 0.23]
- Werkzeug [required: >=0.7, installed: 0.12.1]
- flask-restplus [required: Any, installed: 0.10.1]
- aniso8601 [required: >=0.82, installed: 1.2.0]
- python-dateutil [required: Any, installed: 2.6.0]
- six [required: >=1.5, installed: 1.10.0]
- Flask [required: >=0.8, installed: 0.12]
- click [required: >=2.0, installed: 6.7]
- itsdangerous [required: >=0.21, installed: 0.24]
- Jinja2 [required: >=2.4, installed: 2.9.5]
- MarkupSafe [required: >=0.23, installed: 0.23]
- Werkzeug [required: >=0.7, installed: 0.12.1]
- jsonschema [required: Any, installed: 2.6.0]
- pytz [required: Any, installed: 2017.2]
- six [required: >=1.3.0, installed: 1.10.0]
- Flask-WTF [required: Any, installed: 0.14.2]
- Flask [required: Any, installed: 0.12]
- click [required: >=2.0, installed: 6.7]
- itsdangerous [required: >=0.21, installed: 0.24]
- Jinja2 [required: >=2.4, installed: 2.9.5]
- MarkupSafe [required: >=0.23, installed: 0.23]
- Werkzeug [required: >=0.7, installed: 0.12.1]
- WTForms [required: Any, installed: 2.1]
- lxml [required: Any, installed: 3.4.0]
- python-dateutil [required: ==2.3, installed: 2.6.0]
- six [required: >=1.5, installed: 1.10.0]
- requests [required: Any, installed: 2.13.0]
- six [required: ==1.3.0, installed: 1.10.0]
- SQLAlchemy [required: Any, installed: 0.9.8]
nose==1.2.1
pipdeptree==0.10.1
- pip [required: >=6.0.0, installed: 9.0.1]
pkg-resources==0.0.0
PyMySQL==0.6.2
pyOpenSSL==0.14
- cryptography [required: >=0.2.1, installed: 1.8.1]
- asn1crypto [required: >=0.21.0, installed: 0.22.0]
- cffi [required: >=1.4.1, installed: 1.10.0]
- pycparser [required: Any, installed: 2.17]
- idna [required: >=2.1, installed: 2.5]
- packaging [required: Any, installed: 16.8]
- pyparsing [required: Any, installed: 2.2.0]
- six [required: Any, installed: 1.10.0]
- setuptools [required: >=11.3, installed: 34.3.3]
- appdirs [required: >=1.4.0, installed: 1.4.3]
- packaging [required: >=16.8, installed: 16.8]
- pyparsing [required: Any, installed: 2.2.0]
- six [required: Any, installed: 1.10.0]
- six [required: >=1.6.0, installed: 1.10.0]
- six [required: >=1.4.1, installed: 1.10.0]
- six [required: >=1.5.2, installed: 1.10.0]
wheel==0.30.0a0