最近、devstack を試していたときに、次のエラーが発生しました。
エラー: openstackclient.shell 例外が発生しました: python-neutronclient 2.3.9.40.g9ed73c0 がインストールされていますが、[] には python-neutronclient<3,>=2.3.6 が必要です
調査を行ったところ、おそらく python パスの問題が原因であることがわかりました。/opt/stack/ ディレクトリと /usr/local/lib/python2.7/dist-packages ディレクトリの下に、openstack クライアント インストールの 2 つのスイート (python-neutronclient、python-novaclient など) があります。neutronclient を例にとると、次の 2 つのディレクトリの下にあります。
/opt/stack/python-neutronclient
および
/user/local/lib/python2.7/dist-packages/python-neutronclient
Python は /opt/stack にインストールされたクライアントを使用することがわかりました。
>>> sys.path
['', '/opt/stack/python-keystoneclient', '/opt/stack/python-glanceclient', ..., '/opt/stack/heat', '/opt/stack/tempest', '/usr/lib/python2.7'....]
python(devstack) が /usr/local/lib/python2.7 の下のパッケージを使用しないのはなぜですか? /opt/stack の下のパッケージに問題があります。egg-info/PKG-INFO のバージョン情報は、「2.3.10.dev47.g11deb7f」などの有効な PEP440 バージョンではなく、devstack が失敗する原因となりますkeystone のプロビジョニング時に上記のエラーが発生します。
PYTHONPATH 変数を明示的に設定したことを覚えていませんでした。python または devstack は、デフォルトのシステム python パスの前に /opt/stack/ をどのように設定しますか? devstack のソース コードを確認しましたが、有用な情報は見つかりませんでした。ヒントを教えてくれる人はいますか?ありがとう!