2017-06-16 15 views
1

すべて、カスタムPythonビルドタイム.so:未定義シンボル:PyExc_ValueError

私は、組み込みシステム用の新しいC++プロジェクトに取り組んでいます。システムの一部には、従来のPythonコードもあります。私はすでにPythonで提供されているさまざまなPyImport_ImportModule関数などを使用して、C++からPythonへのプロトタイプを試作し、これを私のホストシステム(Ubuntu 64 bit 17.04)でテストしました。

しかし、新しいプロジェクトのビルドシステムもすべての依存関係を構築しようとするので、ソースからPython 2.7.13をビルドします。私が見ている問題は、ホストシステムで動作するために使用されたインタフェースコードです。PythonはソースPythonから新しく構築されたものでは動作しません。私が見ているエラーは "time.so:未定義シンボル:PyExc_ValueError"で、私がC++から呼び出そうとしている.pyファイルは、最初の数行のうちの1つとしてインポート時間を行います。私はチェックしtime.soはカスタムビルドされたPythonに存在し、それを含めるためにLD_LIBRARY_PATHを更新しましたが、これは役に立ちませんでした。 Pythonのビルドの終わりに私はこれらの警告を見るので、おそらくそれらのうちの1つが関係していますか?

 
Python build finished, but the necessary bits to build these modules were not found: 
_bsddb    _sqlite3   _ssl    
_tkinter   bsddb185   bz2    
dbm    dl     gdbm   
imageop   readline   sunaudiodev  
zlib             

次は何をお試しくださいか?ソースからビルドしているPythonの特別なオプションや非標準のフラグを有効にしているわけではありません(余分な設定が必要かもしれません)。

答えて

1

これは通常のいずれかに起こっている:

  • 必要なクリーンビルドまたはリンクされているのlib
  • 間違っlibpythonを。クリーンなビルドを試してから、リンクフラグを再確認することをお勧めします(Python-2.7をビルドし、Python-2.7にリンクし、Python-3。*などとは言わないようにしてください)。

また、それは非常に同様の問題のように見え、この議論を参照してください:https://www.panda3d.org/forums/viewtopic.php?t=13222

編集:これも関連があるかもしれません:応答のためのundefined symbol: PyExc_ImportError when embedding Python in C

+0

おかげで、今、これらの提案をしようとしています。 – SeanLabs

関連する問題