3

Python モジュール pjsua をインポートしようとすると、以下のエラーが発生します。Mac OS 10.8.1 バージョンを使用しています。http://www.darrensessions.com/?p=292で提供されているソリューションを確認したところ、MacOS-10.7 でこの問題が修正されたようです。これは MacOS-10.8 で再び壊れているようです。コードのコンパイル時にエラーは発生しませんでした。PJSUA モジュールをインポートするときにのみ、以下のエラーが発生します。

>>> import pjsua
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pjsua.py", line 59, in <module>
    import _pjsua
ImportError: dlopen(/Library/Python/2.7/site-packages/_pjsua.so, 2): Symbol not found: _AudioOutputUnitStart
  Referenced from: /Library/Python/2.7/site-packages/_pjsua.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/_pjsua.so

大変お世話になりました。ありがとう、

4

2 に答える 2

1

1つの簡単な解決策は次のとおりです(純粋に理論的であり、テストされていません):

  1. http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2011-November/013722.htmlを見てください。
  2. パッチが言うところを見てください:

    # OS X Lion Support
    if platform.mac_ver()[0].startswith("10.7"):
    extra_link_args += ["-framework", "AudioUnit"]
    
  3. 行を変更

    if platform.mac_ver()[0].startswith("10.7"):
    

    if platform.mac_ver()[0].startswith("10.7") or platform.mac_ver()[0].startswith("10.8"):
    
  4. 再コンパイル

- 編集 -

わかりました、私が提案したようにパッチを当てました:

> python ~/a.py 
a
> cat ~/a.py 
import pjsua

test = "a"
print test
于 2012-10-23T00:09:03.743 に答える
0

このエラーは、上記の PJSIP 2.4 python パッケージで示されているように、最近修正されました。

# OS X Lion (10.7.x) or above support
    if version[0] == '10' and int(version[1]) >= 7:
        extra_link_args += ["-framework", "AudioUnit"]

面白いことに、同じエラーが発生します。

    macbookproloreto:python admin$ python samples/simplecall.py 
Traceback (most recent call last):
  File "samples/simplecall.py", line 23, in <module>
    import pjsua as pj
  File "/Library/Python/2.7/site-packages/pjsua.py", line 59, in <module>
    import _pjsua
ImportError: dlopen(/Library/Python/2.7/site-packages/_pjsua.so, 2): Symbol not found: _pj_atexit
  Referenced from: /Library/Python/2.7/site-packages/_pjsua.so
  Expected in: flat namespace
 in /Library/Python/2.7/site-packages/_pjsua.so

プラットフォームのバージョンをチェックする Python setup.py スクリプトが問題ないように見えるため、理由がわかりません。

>>> import platform
>>> version = platform.mac_ver()[0].split(".")
>>> version
['10', '10', '4']
>>> 
于 2015-07-20T23:23:22.300 に答える