1

Python スクリプトを開発しようとしていますが、含めたい 2 つのライブラリの間で競合が発生しているようです。

私が持っている最初の依存関係は pymoos ( https://github.com/msis/python-moos ) です。これは、私の通信アーキテクチャに接続するために必要です。コードをビルドし、結果の pymoos.so を次の場所に手動でインストールしました。

  • /usr/lib/python3.6/site-packages/pymoos.so
  • /usr/lib64/python2.7/lib-dynload/pymoos.so
  • /usr/lib64/python3.6/lib-dynload/pymoos.so
  • /usr/local/lib/python3.7/lib-dynload/pymoos.so

ただし、インタプリタから「pymoos をインポート」できるのは python2.7 だけです。Python3 バージョンのいずれかから試行すると、次のようになります。

Python 3.6.8 (default, Jun 11 2019, 15:15:01) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymoos
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define module export function (PyInit_pymoos)

2 番目の依存関係は pydantic です。これは、pip3 を使用してのみインストールできました。これは、インストールした Python3 のいずれかのバージョンからのみ利用できることを意味します。Python2 からインポートしようとすると、次のようになります。

Python 2.7.5 (default, Jun 11 2019, 14:33:56) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pydantic
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pydantic

私は pymoos.so ライブラリがどこにあるかを知っているので、それを適切な場所に配置して python3 で動作するようにするのが私の最も簡単な方法だと思いますが、適切な場所を見つけることができないようです!

4

1 に答える 1