2017-10-23 15 views
0

をインポートすることはできません私はこの問題に対処するために、Googleの利用可能なリンクのすべてを洗い上げてきた、まだそれはまだ私のために未解決のまま...のpythonはImportError:名「マルチアレイ」

でgraph_toolをインポートしようとしたとき、私は次のエラーを取得しますpython3。私はpython 2.7と3.6とanacondaの両方をインストールしています。 pipconda、またはbrewのいずれかを使用してパッケージをインストールします。私はMacOS Sierra 10.12.3を持っています。

$ python3 
Python 3.5.2 |Anaconda custom (x86_64)| (default, Jul 2 2016, 17:52:12) 
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from graph_tool.all import * 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.6/site-packages/numpy/core/__init__.py", line 16, in <module> 
    from . import multiarray 
ImportError: cannot import name 'multiarray' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/site-packages/graph_tool/__init__.py", line 104, in <module> 
    import numpy 
    File "/usr/local/lib/python3.6/site-packages/numpy/__init__.py", line 142, in <module> 
    from . import add_newdocs 
    File "/usr/local/lib/python3.6/site-packages/numpy/add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "/usr/local/lib/python3.6/site-packages/numpy/lib/__init__.py", line 8, in <module> 
    from .type_check import * 
    File "/usr/local/lib/python3.6/site-packages/numpy/lib/type_check.py", line 11, in <module> 
    import numpy.core.numeric as _nx 
    File "/usr/local/lib/python3.6/site-packages/numpy/core/__init__.py", line 26, in <module> 
    raise ImportError(msg) 
ImportError: 
Importing the multiarray numpy extension module failed. Most 
likely you are trying to import a failed build of numpy. 
If you're working with a numpy git repo, try `git clean -xdf` (removes all 
files not under version control). Otherwise reinstall numpy. 

Original error was: cannot import name 'multiarray' 


私のディレクトリ/パス上のいくつかの情報:

>>> import sys 
>>> print(('\n').join(sys.path)) 

/usr/local/lib/python3.6/site-packages 
/Users/mymacbook/anaconda/lib/python35.zip 
/Users/mymacbook/anaconda/lib/python3.5 
/Users/mymacbook/anaconda/lib/python3.5/plat-darwin 
/Users/mymacbook/anaconda/lib/python3.5/lib-dynload 
/Users/mymacbook/.local/lib/python3.5/site-packages 
/Users/mymacbook/anaconda/lib/python3.5/site-packages 
/Users/mymacbook/anaconda/lib/python3.5/site-packages/Sphinx-1.4.6-py3.5.egg 
/Users/mymacbook/anaconda/lib/python3.5/site-packages/aeosa 
/Users/mymacbook/anaconda/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg 
/usr/local/lib/python2.7/site-packages 
/usr/local/Cellar/matplotlib/2.0.2/libexec/lib/python2.7/site-packages 
/usr/local/Cellar/numpy/1.13.3/libexec/nose/lib/python2.7/site-packages 

$ echo $PYTHONPATH 
/usr/local/lib/python3.6/site-packages 

$ pr /Users/mymacbook/.local/lib/python3.5/site-packages/homebrew.pth 
import site; site.addsitedir("/usr/local/lib/python2.7/site-packages") 


追加情報:オンライン

どこにも私はmatplotlibの最新バージョンを持っている必要があることを指定しました。私はbrew info matplotlibを実行し、以下の警告が表示されます。私は指定されたコマンドを実行しますが、この注意書きはまだ表示されます。この問題がmultiarray号に関連するかどうかはわかりません。 FYI

==> Caveats 
If you want to use the `wxagg` backend, do `brew install wxpython`. 
This can be done even after the matplotlib install. 
If you use system python (that comes - depending on the OS X version - 
with older versions of numpy, scipy and matplotlib), you may need to 
ensure that the brewed packages come earlier in Python's sys.path with: 
    mkdir -p /Users/mymacbook/.local/lib/python3.5/site-packages 
    echo 'import sys; sys.path.insert(1, "/usr/local/lib/python2.7/site-packages")' >> /Users/mymacbook/.local/lib/python3.5/site-packages/homebrew.pth 

This formula installed .pth files to Homebrew's site-packages and your 
Python isn't configured to process them, so you will not be able to 
import the modules this formula installed. If you plan to develop 
with these modules, please run: 
    mkdir -p /Users/mymacbook/.local/lib/python3.5/site-packages 
    echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/mymacbook/.local/lib/python3.5/site-packages/homebrew.pth 


numpyパッケージの情報。また、上記と同じ警告があります。

$ brew info numpy 
numpy: stable 1.13.3 (bottled), HEAD 
Package for scientific computing with Python 
http://www.numpy.org 
/usr/local/Cellar/numpy/1.12.1 (442 files, 9.6MB) 
    Poured from bottle on 2017-06-08 at 15:05:49 
/usr/local/Cellar/numpy/1.13.0 (1,371 files, 29.0MB) 
    Built from source on 2017-06-24 at 00:28:31 with: --with-python3 
/usr/local/Cellar/numpy/1.13.3 (893 files, 21.8MB) * 
    Poured from bottle on 2017-10-22 at 22:06:55 


また別の問題(潜在的に関連する)....あなたの助けを事前に

$ pip search numpy 
Traceback (most recent call last): 
    File "/Users/tamtran/anaconda/bin/pip", line 7, in <module> 
    from pip import main 
    File "/Users/tamtran/anaconda/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module> 
    from pip.utils import get_installed_distributions, get_prog. 
. 
. 
. 
AttributeError: '_NamespacePath' object has no attribute 'sort' 

ありがとう!私の場合は

答えて

1

ここでsys.pathを再シャッフルしようとしても、幸せにはならないでしょう。

あなたは、Python 2と3から醸造、conda、およびPIPパッケージ-とマッチミックスと再現性のある結果を持つことができません

自分で新鮮conda環境を作成します

conda create -n tensorproject python ipython tensorflow <other pkgs> 
source activate tensorflowproject 

condaはあなたを管理しますあなたのための依存。追加のパッケージをインストールして、conda-forgeで非anacondaパッケージを見つけることができます。さらに必要なときは、その環境にインストールすることができます。

このようなconda環境を作成すると、一緒に動作することが分かっているパッケージだけがサイトパッケージに配置され、site.pyには不自然さがないことに注意してください。

注:PYTHONPATHという環境変数も削除する必要があります。

編集:graph_tool installation pageからgraph_toolインストール

Make sure you use the same compiler to compile the whole stack (Python, Boost, etc) or you may lead into problems.

(下記)graph_toolのコンパイラ要件は、あなたのアナコンダのビルド(py35)と一致しません。

+0

'sys.path'の改造が最適ではないことに私は同意します。しかし、私はOPの同じ問題を新鮮な 'conda'環境で起動した後に打ちました。' sys.path'はまだ正しく動作していませんでした。 –

+0

@ orrew_reece(私の編集を参照してください)あなたまたはOPが特定のターゲットAnacondaバージョンとプラットフォームを投稿した場合、私または他の誰かがAnacondaまたはconda-forgeへのアップロードのためにパッケージを構築することができます。 –

+0

@ PhilCooperこんにちはフィル、あなたの返信のおかげで!私はあなたの提案に従うように試みましたが、 'graph_tool'をインストールするための' python3.6'の必要性が生じました。これは別の困難な旅に導いてくれました。私の[ここでの新しい質問](https://stackoverflow.com/questions/46900020/python-conda-resolvepackagenotfound)を見てもらえますか?前もって感謝します! – tamtam

1

(あなたがいただければ幸いあなたのソリューションに固有のcommandsを提供することができればまた)(ただ、できるだけ多くのコンテキストを提供しようとすると、情報過多のため申し訳ありませんが)、この問題はで見sys.pathによって引き起こされました3.6を参照する前に2.7 site-packagesディレクトリ。

sys.pathにも同様の問題があるようです。 python3を呼び出すと、AnacondaからPython 3.5が読み込まれます。しかし、Anaconda 3.5 site-packageディレクトリのすべてが2.7ディレクトリの後にチェックされます。

# from OP sys.path 
/usr/local/lib/python2.7/site-packages 
/usr/local/Cellar/matplotlib/2.0.2/libexec/lib/python2.7/site-packages 
/usr/local/Cellar/numpy/1.13.3/libexec/nose/lib/python2.7/site-packages 
/Users/mymacbook/anaconda/lib/python3.5/site-packages # <-- should be before 2.7 

^これが問題の原因です。

.pthファイルを取り除き、sys.pathスクリプト内に再ルーティングするなど、さまざまな解決策を試しました。最終的には、numpyディレクトリを2.7 site-packagesから削除しました。私はそれを必要としませんでした。正確にどのようにsys.pathが構築され、永続的に再注文されるのかを迷っていました。

極端になりたくない場合は、sys.pathの組み立て方法を正確にトレースする場合は、siteドキュメントをご覧ください。

+0

こんにちはandrew_reece、あなたの答えに感謝します!上記のsys.pathでは、python3.6/site-packagesがすでにpython2.7/site-packagesに先行しているため、sys.pathは問題の原因ではありません。 – tamtam

+0

私はそうは思わない - 'python3'では、あなたの出力によると、Anaconda 3.5を入手しました:' Python 3.5.2 | Anaconda custom(x86_64) '。これは、 'sys.path'が2.7に達する前に3.5のAnaconda' site-package'にアクセスする必要があると思います。 –

+0

私はpython2.7/site-packagesをsys.pathの一番下に移動しました。 /usr/local/lib/python2.7/site-packagesから手動でnumpyフォルダを削除しましたが、問題はまだ残ります... – tamtam

関連する問題