次のコマンドを実行すると
Sudo pip install python-ldap
私はこのエラーが出ます:
Modules/LDAPObject.cからインクルードされているファイルの中に9:
モジュール/ errors.h:8:致命的エラー:lber.h:そのようなファイルまたはディレクトリはありません
これを修正する方法はありますか?
website はpython-ldapがOpenLDAPをベースにしていると言っているので、Pythonモジュールをコンパイルするためには開発ファイル(ヘッダ)が必要です。 Ubuntuを使用している場合、パッケージはlibldap2-dev
という名前です。
Debian/Ubuntu:
Sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
RedHat/CentOS:
Sudo yum install python-devel openldap-devel
Pipを使用してpython-ldapを正常にインストールするには、次の開発ライブラリが必要です(パッケージ名は、ubuntu環境から取られています)。
Sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
CentOS/RHEL 6では、インストールする必要があります。
Sudo yum install python-devel
Sudo yum install openldap-devel
そしてyumは依存関係としてcyrus-sasl-devel
もインストールします。その後、実行することができます:
pip-2.7 install python-ldap
Ubuntuでは、このようになります。
$ Sudo apt-get install python-dev libldap2-dev libsasl2-dev libssl-dev
$ Sudo pip install python-ldap
ウィンドウズ:私は完全に受け入れられた答えに同意するが、コメントを掘り下げることは私が必要としているものの本質に到達するために時間がかかりました。私はBitnamiを使ってWindows上のReviewboardでこの特定の問題に出会いました。その時に窓に答えを与えるために、私はコメントで言及されたこのリンクを使いました:
その後、以下のコマンドを実行してください。
easy_install pip
pip install python_ldap-2.4.20-cp27-none_win32.whl
(私はPython 2.7と32bitインストールを持っていたので)
easy_install python-ldap
Ubuntu/Debianベースのディストリビューションでは、apt-file
を使って、足りないヘッダーファイルを含む正確なパッケージの名前を見つけることができます。
# do this once
Sudo apt-get install apt-file
Sudo apt-file update
$ apt-file search lber.h
libldap2-dev: /usr/include/lber.h
apt-file search lber.h
の出力からわかるように、パッケージlibldap2-dev
をインストールするだけです。
Sudo apt-get install libldap2-dev
Alpine LinuxでIber.hが見つからないという同じ問題を抱えている人のために、例えばAlpineに適応しようとしているdockerイメージで。
あなたが探しているパッケージはopenldap-devです。
だから走る
apk add openldap-dev
バージョン3.3からEdgeまで利用可能
Armhfとx86_64の両方のアーキテクチャで利用可能です。
Fedora 22では、代わりにこれを行う必要があります。
Sudo dnf install python-devel
Sudo dnf install openldap-devel
OpenSUSEでは、パッケージopenldap2-devel
、cyrus-sasl-devel
、python-devel
およびlibopenssl-devel
をインストールする必要があります。
zypper install openldap2-devel cyrus-sasl-devel python-devel libopenssl-devel
OSXでは、xcode CLIツールが必要です。ターミナルを開いて実行するだけです。
xcode-select --install
python3はpython-ldapをサポートしません。代わりにldap3をインストールしてください。
FreeBSD 11では:
pkg install openldap-client # for lber.h
pkg install cyrus-sasl # if you need sasl.h
pip install python-ldap
Debian/Ubuntuにバイナリ依存のPythonパッケージをインストールするための一般的な解決策として[1]:
Sudo apt-get build-dep python-ldap
# installs system dependencies (but not the package itself)
pew workon my_virtualenv # enter your virtualenv
pip install python-ldap
あなたは buntu上のあなたのPythonパッケージの名前 とPyPIをチェックする必要があるでしょう。この場合、それらは同じです。
PythonパッケージがUbuntuリポジトリに入っていないと、明らかにうまくいきません。
[1] Ubuntuでpip install matplotlib
を試みたときにこのトリックを学びました。
ほとんどのシステムでは、ビルド要件は "インストール"セクションの python-ldapのドキュメント に記載されています。
あなたのシステムに何か不足している(あるいはあなたのシステムが完全に不足している)場合は、メンテナに知らせてください! (2018年現在、私はメンテナなので、ここでのコメントで十分なはずです。あるいは、プルリクエストやメールを送ることもできます。)
あなたがWindowsマシンで作業しているなら、あなたはこれに 'python-ldap'ホイールを見つけることができます Link そしてそれからあなたはそれをインストールすることができます
alphine linuxを使っている人のために、apk add openldap-dev
アルパインドッカー用
apk add openldap-dev
pythonのバージョンが3以上の場合
pip install python3-ldap