首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python3虚拟环境中安装Pyldap (使用Django Auth )

在python3虚拟环境中安装Pyldap (使用Django Auth )
EN

Stack Overflow用户
提问于 2016-04-27 15:31:15
回答 2查看 3.1K关注 0票数 2

我正在尝试安装幽门以将其与django-auth-ldap一起使用,但在执行以下操作时:

代码语言:javascript
复制
 pip install pyldap

我得到:

代码语言:javascript
复制
 In file included from Modules/LDAPObject.c:4:0:
 Modules/common.h:10:20: fatal error: Python.h: No such file or directory
 #include "Python.h"
                    ^
compilation terminated.
error: command 'gcc' failed with exit status 1

重要

我正在使用Virtualenv,女巫是在python3中创建的:

代码语言:javascript
复制
virtualenv -p python3 myvirtualenv

我已经安装了开发包(我在CentOS中,在这个回答中找到):

代码语言:javascript
复制
sudo yum install python-devel
sudo yum install openldap-devel

我已经尝试过的

创建两个新的virtualenv:

  • 一个使用python3.4(使用上面的命令)和pip install pyldap不工作(上面描述的错误)
  • 一个使用python2.7(使用上面没有-p python3的命令)和pip install pyldap工作
  • 将包安装为根sudo pip3 install pyldap,它可以工作,但是当我在虚拟环境中运行django应用程序时,我会得到: 导入ldap ImportError:没有名为ldap的模块

我假装使用pyldap是因为它支持python3,所以我无法理解为什么会发生这种情况,以及如何解决它。如果您不能直接回答这个问题,但是您知道我可能在Django中使用其他库来进行Active身份验证,请评论这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-28 00:20:10

不能使用virtualenv将包安装到sudo中。您必须只使用sudo来安装依赖项。例如

代码语言:javascript
复制
sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev

更新了:但是,如果您的系统默认版本的python2.x,而您的virtualenv是3.x,那么实际上需要安装python3-dev而不是python3。

用于实际安装

代码语言:javascript
复制
source myvirtualenv/bin/activate
pip3 install pyldap

您在这里使用的是pip3,所以请确保您的虚拟服务器已经设置为使用python 3,命令如下所示:

代码语言:javascript
复制
virtualenv -p python3 myvirtualenv

您可以通过输入python来了解实际使用的版本。

请注意,如果您确实希望将包安装为root用户:

代码语言:javascript
复制
sudo -i
source myvirtualenv/bin/activate
pip3 install pyldap
票数 3
EN

Stack Overflow用户

发布于 2016-04-27 18:57:28

您必须安装python包(假设您使用的是Ubuntu/Debian Linux)。

sudo apt-get install python-dev

然后尝试使用pip3安装幽门而不使用sudo。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36894354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档