我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔需要在win10环境下,安装一款名叫python-ldap的第三方库。结果就和很多时候一样,使用pip安装的时候,进入到了cl.exe的编译界面,最终编译失败。所以,试图寻找一个现成的whl文件进行安装。这就是本文要阐述的问题的基本背景。

苏南大叔:pip安装whl文件时,如何解决invalid file name的问题? - pip-install-whl-file-name
pip安装whl文件时,如何解决invalid file name的问题?(图4-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验文章。本文测试环境:win10python@3.8.1python-ldap@pip@24.0

写在前面

pythonwindows版本,可以直接安装.whl文件。参考文章:

python下的.whl文件,还可以从这个网站上面寻找。参考文章:

根据自己的python版本号以及arch信息,选择合适名称的文件。参考文章:

如果下载不到github上的文件,可以通过下面的网站进行中转。参考文章:

得到.whl文件后,执行下面的类似命令即可:

pip install xxxxxxxx.whl

本文的龙套角色是:

然而,看似一切都非常顺利的时候,您可能会遇到下面的错误提示信息。

错误提示

ERROR: 2024-python-ldap-build-python_ldap-3.4.4-cp38-cp38-win_amd64.whl is not a valid wheel filename.

令人震惊,原来这里对.whl文件的名称还有限制?!!!!???!!!说实话,有点难以接受。

苏南大叔:pip安装whl文件时,如何解决invalid file name的问题? - not-vaild-name
pip安装whl文件时,如何解决invalid file name的问题?(图4-2)

因为本文的python-ldap.whl文件是通过第三方网站中转下载的,所以拿到的文件名类似于:

  • 2024-python-ldap-build-python_ldap-3.4.4-cp38-cp38-win_amd64.whl
  • 2024-python-ldap-build-python_ldap-3.4.4-cp38-cp38-win32.whl

实际期待的文件名是:

python_ldap-3.4.4-cp38-cp38-win_amd64.whl

查看格式支持

pip debug --verbose

可以得到其支持文件格式,例如:

Compatible tags: 30
  cp38-cp38-win_amd64
  cp38-abi3-win_amd64
  cp38-none-win_amd64
  cp37-abi3-win_amd64
  cp36-abi3-win_amd64
  cp35-abi3-win_amd64
  cp34-abi3-win_amd64
  cp33-abi3-win_amd64
  cp32-abi3-win_amd64
  py38-none-win_amd64
  py3-none-win_amd64
  py37-none-win_amd64
  py36-none-win_amd64
  py35-none-win_amd64
  py34-none-win_amd64
  py33-none-win_amd64
  py32-none-win_amd64
  py31-none-win_amd64
  py30-none-win_amd64
  cp38-none-any
  py38-none-any
  py3-none-any
  py37-none-any
  py36-none-any
  py35-none-any
  py34-none-any
  py33-none-any
  py32-none-any
  py31-none-any
  py30-none-any

苏南大叔:pip安装whl文件时,如何解决invalid file name的问题? - 可接受的名称格式
pip安装whl文件时,如何解决invalid file name的问题?(图4-3)

解决方案

把名称改名成了这样“python_ldap-3.4.4-cp38-cp38-win_amd64.whl”,然后安装成功。

苏南大叔:pip安装whl文件时,如何解决invalid file name的问题? - pip安装whl成功
pip安装whl文件时,如何解决invalid file name的问题?(图4-4)

所以,复盘一下的话,原因就在于在使用第三方d.serctl.com中转服务的时候,文件名被修改的缘故。

相关文章

总结

更多pip相关经验文章,可以参考:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    pip