Django项目无法安装python-ldap依赖解决方案

server/2024/10/18 18:14:28/

       最近工作中安排了一个Python web项目,使用Pycharm从git拉取代码后,配置号Python的解释器和pip后,Pycharm自动下载安装项目所需的依赖,但是有一个依赖django-auth-ldap==4.1.0安装始终失败,最初的异常信息提示是:Microsoft Visual C++ 14.0 or greater is required,Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

直接根据提示去微软官网下载相关c++构建工具

,然后使用这个工具去安装c++桌面开发工具(只选择C++桌面开发就行了),默认选中的组件安装就可以了,安装好了,再次在终端执行pip install django-auth-ldap==4.1.0 仍然还是会报错,

3.5.2->Django>=2.2->django-auth-ldap==4.1.0) (4.11.0)
Building wheels for collected packages: python-ldap
  Building wheel for python-ldap (PEP 517): started
  Building wheel for python-ldap (PEP 517): finished with status 'error'
Failed to build python-ldap

根据提示语:是构建python-ldap的时候失败了,说明安装 django-auth-ldap是依赖python-ldap的,所以单独执行 pip install python-ldap 

Collecting django-auth-ldap==4.1.0
  Using cached django_auth_ldap-4.1.0-py3-none-any.whl (20 kB)
Collecting python-ldap>=3.1

根据提示,python-ldap的版本大于3.1就符合要求,但是 单独执行 pip install python-ldap ,仍然报错;粘贴下最关键的错误信息:

fatal error C1083: 无法打开包括文件: “lber.h”: No such file or directory
  error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
  ----------------------------------------
  ERROR: Failed building wheel for python-ldap
ERROR: Could not build wheels for python-ldap which use PEP 517 and cannot be installed directly
 

重点关注这个lber.h ;经过查询,这个文件是ldap协议的头部,在相关文件中没有找到lber.h的声明,所以编译报错;

 接下来比较坑的地方来了,去python-ldap官网(Installing python-ldap — python-ldap 3.4.3 documentation)和python-ldap的官方github旧仓库(Python 3.6.1 error Modules/errors.h:8:18: fatal error: lber.h: No such file or directory · Issue #91 · pyldap/pyldap · GitHub)去看这个问题的相关说明;python-ldap的依赖在windows系统上是无法正常安装的,官方给的解决方法就是去下载离线whl,给了一个离线whl下载网站(https://www.lfd.uci.edu/~gohlke/pythonlibs/),大家也不用去访问这个网站了,这个实验室网站已经移除whl下载功能了,访问也是page not found,而且国内的大学镜像网站比如清华的(Simple Index),目前也是404状态,不知道为啥全都不让下载这些离线已经构建好的whl文件了,所以真的没有办法,最后只能在网上购买了一个whl文件

    这个文件分享不了(csdn的限制,分享失败,如果需要可以私信我或者文章评论留下邮箱,看到后发送),最后反正是花了十来块钱买了一个

 

与windows系统匹配的已经构建好的whl文件,然后使用powershell在该目录下执行命令:

pip install python_ldap-3.3.1-cp38-cp38-win_amd64.whl

 然后就可以成功安装python_ldap-3.3.1-cp38-cp38-win_amd64.whl,3.3.1是python_ldap的版本,cp38表示python的版本3.8,后边的win表示windows系统,所以为了满足这个whl条件,我又额外安装了python3.8版本,执行上边的命令后,就会安装python-ldap成功,python-ldap安装成功,就可以安装django_auth_ldap==4.1.0了,我直接去django_auth_ldap官网下载的,所以再次执行:

pip install django_auth_ldap-4.1.0-py3-none-any.whl

会执行成功,没有异常信息;我把pip也更新到了最新版本

这时,项目中还是提示缺少这个依赖,让安装,这时因为我安装python的时候,使用的是python的默认设置,python默认安装依赖在这个路径:

是在系统盘C盘的,但是我的项目是在E盘放的,创建的venv(Python虚拟环境)也是在项目下边,所以项目下虚拟环境的site-package下并没有安装上;其实很简单,直接将C盘下的site-package下新增的文件全部复制到项目下的venv

 复制完成就ok,Pycharm就不会提示缺少依赖了,requirements.txt文件中也不会有依赖爆红了!至此成功解决这个依赖问题

如果是linux系统则只需要安装对应的ldap协议开发工具即可
即:centos系统:

yum install openldap-devel python-devel

以及如果是alpine系统:

apk add build-base openldap-dev python3-dev

    debian系统:

apt-get install build-essential python3-dev \libldap2-dev libsasl2-dev slapd ldap-utils tox \lcov valgrind


http://www.ppmy.cn/server/7967.html

相关文章

编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程COS(X)-X=0的一个实根。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 编写…

PyTorch深度学习入门到精通指南AI写作一键生成

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

初始化Git仓库时应该运行哪个命令?

文章目录 初始化Git仓库时,你应该运行git init这个命令。这个命令的作用是在你当前所在的目录里创建一个新的Git仓库。这样,你就可以在这个目录里开始使用Git来管理你的文件了。 下面我给你举个详细的例子来说明一下: 首先,你需要…

2024 IDM最新破解版及软件介绍

*IDM:信息时代的高效管理工具** 在快节奏的现代社会中,随着信息的爆炸式增长,如何高效、有序地管理信息成为每个人都需要面对的挑战。IDM,作为一种信息管理工具,正在逐渐受到人们的青睐。 IDM,全称Inform…

同旺科技 USB TO SPI / I2C适配器读写24LC128--读写

所需设备: 1、USB 转 SPI I2C 适配器;内附链接 2、24LC128芯片; 适应于同旺科技 USB TO SPI / I2C适配器专业版; 专业版配套软件更新; 直接读取HEX文件,自动完成文件解析; 支持芯片&#xf…

[2021最新]大数据平台CDH存储组件kudu之启用HA高可用(添加多个master)

今天在做kudu高可用的时候没有参考官网,直接按照常规方式(添加角色—>编辑属性—>启动)结果发现报错?然后参考了一下文档之后发现这玩意儿还有点玄学,做一下记录。 1.添加两个master。kudu master有leader和foll…

nvm vscode的问题

将原来的node卸载了,改为使用nvm版本控制工具来管理node版本,结果将nvm及环境变量都配置好之后,并且在终端cmd中node -v 等命令正常显示,在vscode中启动vue项目就会报这个错误。 查阅了好多资料,有改变环境变量的、有…

微软面试高频算法题解析与代码实现(C++)

作为全球顶尖科技公司,微软对人才的招聘要求十分严格,尤其是在算法工程师的选拔上。算法面试是微软招聘流程中不可或缺的一环,考察候选人对算法和数据结构的理解和应用能力。本文将列举微软面试中出现频率较高的 10 道算法题,并使…