12

64 ビットの Ubuntu 12.04 で Numpy 1.6.2 で Python 2.7.3 を使用する。システムには追加のバージョン (Python 2.6.4 および Numpy 1.6.1) が存在しますが、私の知る限り、これらは以下に説明するイベントに影響を与えません。

Numpy を使用する Python プログラムに取り組んでおり、プログラムから特定のコマンドを実行しようとするとエラーが発生します。そこで、python2.7-dbg をインストールしてプログラムを実行し、それがデバッグに役立つかどうかを確認することにしました。だから私は走る

$ python-dbg <command>

それ以外の

$ python <command>

ただし、これにより、numpy に関連する「未定義のシンボル: Py_InitModule4_64」エラーが発生します。何を実行しようとしているかは問題ではありません。「通常の」pythonで実行すると成功するコマンドでもエラーが発生します。空の python-dbg プロンプトに numpy をインポートしようとしても発生します。

$ python-dbg
Python 2.7.3 (default, Aug  1 2012, 04:55:00)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: /usr/local/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: Py_InitModule4_64
[134187 refs]
>>>

純粋な python プロンプトでは、numpy のインポートが成功します。

私はインターネットで情報を見つけることができませんでした。私のエラーに最も近いのはdebian のこのバグです。これはまったく同じ状況ですが、さらなる情報が提供される前にクローズされました。APT から python-numpy-dbg と python-apt-dbg パッケージの両方をインストールしました。マシンへの sudo アクセス権があるため、行った変更はシステム全体で有効です。私の知る限り、実行しようとしているどのプロセスにも chroot オプションが設定されていないため、Debian バグ ページは役に立ちません。

どんな援助でも大歓迎です。

4

1 に答える 1

4

OPで確認されたように、ここの手がかりは、numpyインポートしていることを示すトレースバックにあります/usr/local/lib/. ただし、apt によってインストールされたパッケージは に移動し、 、 などでインストール/usr/lib/pythonX.Yされた Ubuntu 以外の Python パッケージはシステム パッケージの下にインストールされ、置き換えられます。pipeasy_install/usr/local/lib/pythonX.Y

今のところ/usr/local/lib/python2.7/dist-packages、python-numpy によってインストールされた Numpy を機能させるために、インストールした Numpy をアンインストールする必要があります。将来的には、両方をインストールして切り替えることができるようになるかもしれませんがusercustomize.py、私は現在 Ubuntu マシンを使用していないため、それをテストする方法がありません。

于 2012-11-27T16:28:04.533 に答える