私は自分のアプリケーションpython-ldap
内で使用していますが、常に正常に機能しています。Django
私は現在、アルパインとドッカーで最新のジャンゴになりたいと思って、プロジェクトの多くの依存関係をアップグレードしている最中です。
./manage shell
(または他の管理コマンド)を実行しようとすると、突然このエラーが発生し始めました。
...
File "/usr/lib/python2.7/site-packages/ldap/__init__.py", line 22, in <module>
import _ldap
ImportError: Error relocating /usr/lib/python2.7/site-packages/_ldap.so: ber_free: symbol not found
python -c 'import _ldap'
./manage.py shell -c 'import _ldap'
上記のエラーで正常に動作します。
import ldap
いじってみると、非常に早い段階でエラーが解消されたことに気付きました。
編集とデバッグの長い旅の後、https://github.com/django/django/blob/1.10/django/apps/config.py#L107if entry == 'django.contrib.postgres': import ldap
の前に追加すると、django で.
L107 は( https://github.com/django/django/blob/1.10/django/contrib/postgres/apps.py#L10 ) です。import ldap
module.default_app_config
django.contrib.postgres.apps.PostgresConfig
したがって、明らかに、postgre import は何かを行っています。しかし、それはldapで何をしているのですか? どこかで名前の衝突がありますか? さらにデバッグするにはどうすればよいですか?
「あなたの上にldapをインポートするだけ」の解決策は必要ありませんsettings.py
。これはバグであり、修正する必要があります。
- ジャンゴ: 1.10
- アルパイン: 3.4
- パイソン: 2.7.12
- psycopg2: 2.6.2
- libpq: 9.5.3-r1