COMMAND_LINE_LOGGING_LEVELのためにマークダウンをインポートできません

django markdown python
COMMAND_LINE_LOGGING_LEVELのためにマークダウンをインポートできません

Pythonでマークダウンをインポートできるという奇妙なエラーがあり、Djangoの実行サーバー内でPythonでマークダウンをインポートできますが、gunicornのアプリサーバー内でマークダウンをインポートしようとすると、次のエラーが発生します。

_ * _ ImportError:名前COMMAND_LINE_LOGGING_LEVELをインポートできません

COMMAND_LINE_LOGGING_LEVELがマークダウン(または使用しているコード)で参照されている唯一の場所を見つけたため、これはさらに混乱を招きます-1行、定義、マークダウン* init * .pyで、コメントアウト。 まだこのエラーが発生します。

何か案は?

  3  0


ベストアンサー

Gunicornは、まだ理解していない理由により、virtualenv / binディレクトリをsys.pathに追加します。 Markdownは、そのbinディレクトリにmarkdown.pyをインストールします。 そのmarkdown.pyは、ライブラリのマークダウンからCOMMAND_LINE_LOGGING_LEVELをインポートしようとします。 これにより、循環障害が発生します。

Gunicornがこれを行う理由はわかりませんが、おそらくそうすべきではありません。 私の便利な修正は、サーバーのlocal_settings.pyに以下を追加することです

import sys
for i, path in enumerate(sys.path):
    if path.endswith('bin'):
        del sys.path[i]

2


whatever / binのmarkdown.pyから.py拡張子を削除することで、このエラーを修正しました。 これにより、サイトパッケージ内のマークダウンモジュールの代わりに自身をインポートすることができなかったようです。

2


タイトルとURLをコピーしました