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

       最近工作中安排了一个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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/563344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java客户端如何直接调用es的API

Java客户端如何直接调用es的API 一. 问题二. withJson 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 问题 今天做项目的时候,想要直接通过java客户端调用es的api…

解决Django中调页面时出现“Did you forget to register or load this tag”报错

解决Django中调页面时出现“Did you forget to register or load this tag?”报错 1.问题收录 2.分析问题 在HTML文件中,{{title}},{{lanyy}},django 默认规定的语法,用{{}}包起来的变量叫做模板变量。 django渲染模板时会将大…

2.1K Star微软开源的高质量 iot库

功能描述 该项目是一个开源的 .NET Core 实现,旨在帮助开发者构建适用于物联网(IoT)设备和场景的应用程序。它提供了与传感器、显示器和输入设备等相互作用所需的 GPIO 引脚、串口等硬件的接口。该仓库包含 System.Device.Gpio 库以及针对各种板卡(如 Ra…

论文笔记:Time-LLM: Time Series Forecasting by Reprogramming Large Language Models

iclr 2024 reviewer 评分 3888 1 方法 提出了 Time-LLM, 是一个通用的大模型重编程(LLM Reprogramming)框架将 LLM 轻松用于一般时间序列预测,而无需对大语言模型本身做任何训练 为什么需要时序数据和文本数据对齐:时…

vi, vim,data,wc,系统常用命令-读书笔记(十)

vi 文本编辑器 基本上 vi 共分为三种模式,分别是“一般指令模式”、“编辑模式”与“命令行命令模式”。这三种模式的作用分别是: 一般指令模式(command mode)以 vi 打开一个文件就直接进入一般指令模式了(这是默认的…

分类预测 | Matlab实现CNN-LSTM-SAM-Attention卷积长短期记忆神经网络融合空间注意力机制的数据分类预测

分类预测 | Matlab实现CNN-LSTM-SAM-Attention卷积长短期记忆神经网络融合空间注意力机制的数据分类预测 目录 分类预测 | Matlab实现CNN-LSTM-SAM-Attention卷积长短期记忆神经网络融合空间注意力机制的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Mat…

frp改造Windows笔记本实现家庭版免费内网穿透

文章目录 前言frp原理Windows服务端IP检验IP固定软件下载端口放行端口映射开机启动 NAS客户端端口查询软件下载端口检验穿透测试自启设置 Ubuntu客户端软件下载后台启动 后记 前言 之前一直用花生壳远程控制一个服务器,但最近内网的网络策略似乎发生了变化&#xf…

java中的异常机制

异常原理分析 在我们编写一个代码的时候必然会出现这样那样的问题,这些问题可能是明显的,也有可能是不明显的。从理论上来说,一个程序员应当具备处理代码出现的大多数问题的能力,但是这并不意味着程序员要思考处理所有的代码问题。…

硬盘日常使用中的注意事项

硬盘是计算机中的重要存储设备,负责存储大量的数据。为了确保数据的完整性和硬盘的寿命,日常使用中需要注意以下几点: 避免震动和撞击:硬盘在工作时,内部的磁盘正在高速旋转,任何轻微的震动或撞击都可能导致磁盘损坏或数据丢失。因此,使用硬盘时应确保计算机放置稳定,避…

Python图像处理【24】面部变形(face morphing)

面部变形 0. 前言1. 网格变形算法2. 实现面部变形小结系列链接 0. 前言 面部变形 (face morphing) 的目的是在计算图像中两个面部之间的平均值,它并不是计算两张图像的平均值,而是计算面部区域的平均值。可以将该过程分解为以下两步: 对齐两…

Docker容器化部署(企业版)

大家好,webfunny前端监控埋点系统,已经正式发布了webfunny的官方镜像: Webfunny镜像目录:https://hub.docker.com/r/webfunny/webfunny_monitor_cluster/tags 部署前提是你的服务器已经安装了Docker环境,没有安装doc…

车载电子电器架构 —— 售后诊断开发

车载电子电器架构 —— 售后诊断开发 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

OpenCV——Niblack局部阈值二值化方法

目录 一、Niblack算法1、算法概述2、参考文献二、代码实现三、结果展示OpenCV——Niblack局部阈值二值化方法由CSDN点云侠原创,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、Niblack算法 1、算法概述 Niblack 算法是一种典型的局部阈值…

SpringMVC深解--一起学习吧之架构

SpringMVC的工作原理主要基于请求驱动,它采用了前端控制器模式来进行设计。以下是SpringMVC工作原理的详细解释: 请求接收与分发: 当用户发送一个请求到Web服务器时,这个请求首先会被SpringMVC的前端控制器(Dispatche…

VUE识别图片文字OCR(tesseract.js)

效果:1&#xff1a; 效果图2&#xff1a; 一、安装tesseract.js npm i tesseract.js 二、静态页面实现 <template><div><div style"marginTop:100px"><input change"handleChage" type"file" id"image-input"…

【数据结构项目】通讯录

个人主页点这里~ 原文件在gitee里~ 通讯录的实现 基于动态顺序表实现通讯录项目1、功能要求2、代码实现file.hfile.cList.hList.ctest.c 基于动态顺序表实现通讯录项目 准备&#xff1a;结构体、动态内存管理、顺序表、文件操作 1、功能要求 ①能够存储100个人的通讯信息 ②…

Xilinx 7系列FPGA全局时钟缓冲器基本单元

Global Clock Buffer Primitives&#xff08;全局时钟缓冲器基本单元&#xff09;在FPGA&#xff08;现场可编程门阵列&#xff09;和其他数字系统中扮演着至关重要的角色。这些基本单元被设计用于处理、分配和增强时钟信号&#xff0c;以确保系统中的各个组件都能以精确和同步…

【Hadoop】- YARN架构[7]

前言 Yarn架构是一个用于管理和调度Hadoop集群资源的系统。它是Hadoop生态系统的一部分&#xff0c;主要用于解决Hadoop中的资源管理问题。 通过使用Yarn架构&#xff0c;Hadoop集群中的不同应用程序可以共享集群资源&#xff0c;并根据需要动态分配和回收资源。这种灵活的资…

4.21java聊天室项目小结

基本完成了用户的登录注册功能&#xff0c;可以实现用户账号登录和邮箱登录功能&#xff0c;忘记密码通过邮箱发送验证码找回&#xff0c;注册账号功能&#xff0c;并传递给客户端更新数据库的表内容 注册功能&#xff1a; 注册成功后密码进行MD5加密并通过服务器保存到数据库…

【STM32F4】STM32CUMX相关环境配置

一、环境配置 我们需要以下两个软件 &#xff08;一&#xff09;keil5 最正统&#xff0c;最经典的嵌入式MCU开发环境。 该环境的配置可以看看之前的文章 所需文件如下&#xff1a; 当时配置的是STC8H的环境&#xff0c;现在基于此&#xff0c;重新给STM32配置环境。能让STC…