pip安装包时遇到的Bug

 

背景

  今天打包人生中的第一个package到PyPi,在linux上执行pip3 install mysqltools-python安装一点问题都没有,打脸的是在自己的MAC上

  居然安装不上

pip3 install mysqltools-python
Collecting mysqltools-python
  Downloading https://files.pythonhosted.org/packages/46/da/de9495da7bf0ee9225a1f1988ab5cb4e8573388338df1e55d8b5272c413a/mysqltools-python-2.18.09.01.tar.gz
Collecting mysql-connector-python>=8.0.12 (from mysqltools-python)
  Downloading https://files.pythonhosted.org/packages/23/ca/9bb3e8c2ae661f7f5ca3425cbcb82f7e676276d2d07d17812c4e1a83fa0b/mysql_connector_python-8.0.12-cp36-cp36m-macosx_10_12_x86_64.whl (3.5MB)
    100% |████████████████████████████████| 3.5MB 435kB/s 
Requirement already satisfied: protobuf>=3.0.0 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from mysql-connector-python>=8.0.12->mysqltools-python) (3.5.2)
Requirement already satisfied: six>=1.9 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from protobuf>=3.0.0->mysql-connector-python>=8.0.12->mysqltools-python) (1.11.0)
Requirement already satisfied: setuptools in ./Library/Python/3.6/lib/python/site-packages (from protobuf>=3.0.0->mysql-connector-python>=8.0.12->mysqltools-python) (40.2.0)
Building wheels for collected packages: mysqltools-python
  Running setup.py bdist_wheel for mysqltools-python ... done
  Stored in directory: /Users/jianglexing/Library/Caches/pip/wheels/19/78/6a/3f6c6442c7f3608c70d4d3f35e43146712b49bcdfa33485be8
Successfully built mysqltools-python
Installing collected packages: mysql-connector-python, mysqltools-python
  Found existing installation: mysql-connector-python 2.1.5
Cannot uninstall 'mysql-connector-python'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

  看报错的信息提示说“Cannot unintall mysql-connector-python” 由于mysqltools-python依赖于mysql-connector-python-8.0.12

  所以pip会先把我机器上低版本的“mysql-connector-python”卸载掉,然后安装“mysql-connector-python-8.0.12”以上版本的;

  现在的问题就出在了卸载“mysql-connector-python”上。

 

第一回合 手工卸载mysql-connector-python

pip3 uninstall mysql-connector-python
Cannot uninstall 'mysql-connector-python'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

  看来还是太年轻了,手工卸载不了!

 

第二回合 google

  google了一下之后发现并不是只有我一个人遇到了这个问题,这个是pip-10.0.1版本的一个bug,这样解决方案就来了,我只要把pip3的版本

  降下去就行了

pip --version
pip 10.0.1 from /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pip (python 3.6)

pip install --upgrade --force-reinstall pip==9.0.3
Collecting pip==9.0.3
  Downloading https://files.pythonhosted.org/packages/ac/95/a05b56bb975efa78d3557efa36acaf9cf5d2fd0ee0062060493687432e03/pip-9.0.3-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 3.2MB/s 
Installing collected packages: pip
  Found existing installation: pip 10.0.1
    Uninstalling pip-10.0.1:
      Successfully uninstalled pip-10.0.1
Successfully installed pip-9.0.3

 

 

第三回合 安装mysqltools-python

pip3 install mysqltools-python
Collecting mysqltools-python
  Downloading https://files.pythonhosted.org/packages/46/da/de9495da7bf0ee9225a1f1988ab5cb4e8573388338df1e55d8b5272c413a/mysqltools-python-2.18.09.01.tar.gz
Collecting mysql-connector-python>=8.0.12 (from mysqltools-python)
  Cache entry deserialization failed, entry ignored
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/23/ca/9bb3e8c2ae661f7f5ca3425cbcb82f7e676276d2d07d17812c4e1a83fa0b/mysql_connector_python-8.0.12-cp36-cp36m-macosx_10_12_x86_64.whl (3.5MB)
    100% |████████████████████████████████| 3.5MB 230kB/s 
Requirement already satisfied: protobuf>=3.0.0 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from mysql-connector-python>=8.0.12->mysqltools-python)
Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from protobuf>=3.0.0->mysql-connector-python>=8.0.12->mysqltools-python)
Requirement already satisfied: six>=1.9 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from protobuf>=3.0.0->mysql-connector-python>=8.0.12->mysqltools-python)
Building wheels for collected packages: mysqltools-python
  Running setup.py bdist_wheel for mysqltools-python ... done
  Stored in directory: /var/root/Library/Caches/pip/wheels/19/78/6a/3f6c6442c7f3608c70d4d3f35e43146712b49bcdfa33485be8
Successfully built mysqltools-python
Installing collected packages: mysql-connector-python, mysqltools-python
Successfully installed mysql-connector-python-8.0.12 mysqltools-python-2.18.9.1
You are using pip version 9.0.3, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
sh-3.2# 

 

 

学习交流

 

 -----------------------------http://www.sqlpy.com-------------------------------------------------

 -----------------------------http://www.sqlpy.com-------------------------------------------------

 

 

---

posted on 2018-09-05 16:06  蒋乐兴的技术随笔  阅读(979)  评论(0编辑  收藏  举报

导航