mac版pip install --upgrade pip 更新版本出错

本文介绍了在使用pip更新过程中遇到的超时错误及解决方案,并解决了安装MySQLdb时出现的配置命令未找到的问题。通过更换pip源及安装MySQL服务器来成功解决了上述问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错信息:

➜  ~ sudo  pip install --upgrade pip

Collecting pip
  Downloading pip-8.1.2-py2.py3-none-any.whl (1.2MB)
    74% |███████████████████████▊        | 888kB 21kB/s eta 0:00:15Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/basecommand.py", line 223, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/commands/install.py", line 282, in run
    requirement_set.prepare_files(finder)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py", line 334, in prepare_files
    functools.partial(self._prepare_file, finder))
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py", line 321, in _walk_req_to_install
    more_reqs = handler(req_to_install)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py", line 491, in _prepare_file
    session=self.session)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/download.py", line 825, in unpack_url
    session,
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/download.py", line 673, in unpack_http_url
    from_path, content_type = _download_http_url(link, session, temp_dir)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/download.py", line 886, in _download_http_url
    _download_url(resp, link, content_file)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/download.py", line 621, in _download_url
    for chunk in progress_indicator(resp_read(4096), 4096):
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/utils/ui.py", line 133, in iter
    for x in it:
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/download.py", line 586, in resp_read
    decode_content=False):
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/_vendor/requests/packages/urllib3/response.py", line 307, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/_vendor/requests/packages/urllib3/response.py", line 267, in read
    raise ReadTimeoutError(self._pool, None, 'Read timed out.')
ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.

 

解决方案:sudo pip  install --index https://pypi.mirrors.ustc.edu.cn/simple/ --upgrade pip

安装MySQLdb-python出错

➜  ~ pip install MySQL-python
Collecting MySQL-python
  Using cached MySQL-python-1.2.5.zip
    Complete output from command python setup.py egg_info:
    sh: mysql_config: command not found
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/rj/lcp0d7815kl2v5xh0j4zm6h00000gn/T/pip-build-tD7Et4/MySQL-python/setup.py", line 17, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 25, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/rj/lcp0d7815kl2v5xh0j4zm6h00000gn/T/pip-build-tD7Et4/MySQL-python/

 

解决方案:brew install mysql

             sudo pip install MySQL-python

 

 

转载于:https://my.oschina.net/u/2263272/blog/779601

### 两条pip命令的区别 `pip install --upgrade pip --user` 和 `pip install --upgrade pip` 是两种不同的升级pip的方式,它们的主要区别在于安装位置以及权限需求。 #### 权限与作用范围 - **`pip install --upgrade pip`**: 此命令尝试以管理员权限或全局权限升级pip。这意味着它会影响整个系统pip版本,适用于那些希望在整个系统范围内更新pip的情况[^4]。如果用户没有足够的权限(例如,在Linux上未使用sudo或者Windows上未以管理员身份运行),则可能会遇到权限错误。 - **`pip install --upgrade pip --user`**: 加入`--user`选项后,此命令仅会在用户的本地目录下安装或升级pip,不会影响到全局环境。这种方式不需要管理员权限,并且适合于那些无法获得全局写入权限的场景,比如共享主机环境或是受限的工作站环境[^2]。 #### 虚拟环境的影响 当在一个虚拟环境中执行上述任一命令时,无论是否指定`--user`参数,通常都会只对该虚拟环境内的pip进行操作而不干扰外部系统级别的设置[^4]。这是由于虚拟环境设计的目的就是隔离依赖关系,使得不同项目可以拥有独立的一套库集合及其各自的工具链版本。 #### 推荐实践 对于大多数开发者而言,在日常开发过程中推荐优先考虑利用虚拟环境来管理项目的依赖项;而在创建新的虚拟环境之前,则可以通过添加`--user`标志安全地提升个人账户下的pip至最新稳定以便后续顺利构建所需的封闭式工作区[^3]。 ```bash # 升级当前用户的pip副本 pip install --upgrade pip --user ``` 另外值得注意的是,有时即使指定了国内镜像源也可能遭遇网络波动引发下载失败等问题,此时可参照具体提示信息调整策略如更换其他可用镜像地址等[^5]: ```bash # 使用豆瓣提供的PyPI镜像服务来进行pip自身的更新 python -m pip install --upgrade pip -i https://pypi.doubanio.com/simple/ ``` ### 总结 综上所述,选择哪种方法取决于实际的需求——即是要更改全盘配置还是仅仅满足个体化定制偏好而已。务必依据实际情况权衡利弊后再做决定。 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值