簡體   English   中英

Pyldap(使用Django Auth LDAP)安裝在python3 virtualenv中

[英]Pyldap (to use Django Auth LDAP) install in a python3 virtualenv

我正在嘗試安裝pyldap以便將其與django-auth-ldap一起使用,但是在這樣做時:

 pip install pyldap

我得到:

 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中創建的:

virtualenv -p python3 myvirtualenv

我已經安裝了開發包(我在CentOS中,在此答案中找到):

sudo yum install python-devel
sudo yum install openldap-devel

我已經嘗試過的

創建兩個新的virtualenv:

  • 一個與python 3.4(使用上述命令)和pip install pyldap使用不起作用(存在上述錯誤)
  • 一個與python 2.7(使用上面的命令不帶-p python3 )和pip install pyldap工作
  • 以root sudo pip3 install pyldap軟件包安裝sudo pip3 install pyldap ,它可以工作,但是當我在virtualenv的django應用中運行時,我得到:

     import ldap ImportError: No module named 'ldap' 

我假裝使用pyldap正是因為它支持python3,所以我不明白為什么會這樣以及如何解決它。 如果您不能直接回答此問題,但您知道我可以在Django中用於Active Directory身份驗證的其他庫,請對此問題發表評論。

您不能使用sudo將軟件包安裝到virtualenv中。 您只能使用sudo來安裝依賴項。 例如

sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev

已更新 :但是,如果系統的默認python版本是2.x,而virtualenv是3.x,則實際上需要安裝python3-dev而不是python-dev。

實際安裝

source myvirtualenv/bin/activate
pip3 install pyldap

您在此處使用的是pip3,因此請確保已將您的virtualenv設置為通過以下命令使用python 3:

virtualenv -p python3 myvirtualenv

您可以通過輸入python shell來確定實際使用的版本。

作為腳注,如果您確實要以root用戶身份安裝軟件包:

sudo -i
source myvirtualenv/bin/activate
pip3 install pyldap

您必須安裝python-dev軟件包(假設您使用的是Ubuntu / Debian Linux)

sudo apt-get install python-dev

然后嘗試使用不帶sudo的pip3安裝pyldap。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM