Pythonを2.7.3から2.7.10にアップグレードするときに、 uwsgiで同じ (またはより良い: 同様の) 問題が発生しました。
- インポートしようとしたモジュールはソケット( socket.py )
でした
- 次に_socket ( _socket.so )をインポートしようとしましたが、未解決のシンボルは
_PyInt_AsInt
問題は、 Pythonの マイナー マイナーリリース間で一部の関数が一致していないことです (下位互換性は失われませんが、ところで)。詳細を聞かせてください:
Pythonのコンパイル方法に関係なく、次のことが起こりました: 2.7.10と2.7.11の間で、いくつかの内部関数が追加/削除されました (この場合は追加されました):
- パイソンコア
- 動的 (または拡張) モジュール ( Cで記述) - ${PYTHON_LIB_DIR}/lib-dynloadにある.soファイル(例: /home/user/.pyenv/versions/2.7.11/envs/master2/lib/python2.7 /lib-dynload ); 任意の動的モジュール ( .so ) はPYTHONCOREのクライアントです
したがって、基本的にはバージョンの不一致です (実行時に発生します):
その結果、サポートされていないPython 2.7.10ランタイムに対してPython 2.7.11動的モジュールが使用されたという状況が発生しました。
結論として、uwsgi buildmachine が (Python PoV から) runmachine と同期していることを確認してください。つまり、 実行する予定の同じバージョンのPythonでuwsgiをビルドしてください。