2016-07-14 10 views
1

私は同様の質問を見ましたが、私は最近、有効なMacportがある場合、正常に動作PythonパッケージをインストールするのMac OS X上のMacPortsを使ってPython V3.5にアップグレード:macports python 3.5にアップグレードした後に.soファイルを必要とするpythonパッケージをインストールする際にエラーが発生しました。

sudo port install py35-numpy 

しかし、私はPIP3を使用する.soファイルが必要なのpythonパッケージをインストールしようとした場合、私はエラーを取得します。たとえば、ピスタンの港はありません。まず、私はその後、私は私のPython 3.5のディレクトリ、彼らはすでにあったので、それは実際にCythonまたはnumpyのをインストールしなかったことを

sudo pip3 install --target=/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/ pystan 

Installing collected packages: Cython, numpy, pystan 
Successfully installed Cython-0.24 numpy-1.11.1 pystan-2.9.0.0 

ないにpystanをインストールするためにピップ使用ピップ

sudo port install py35-pip 

をインストールします。しかし、その後、私はpystanを実行しようとすると:私はピップ、およびnetCDF4と同じものを経由してnumpyのをインストールしようとしたとき

Nate$ ipython 
Python 3.5.2 (default, Jun 27 2016, 03:10:38) 
Type "copyright", "credits" or "license" for more information. 

IPython 5.0.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

In [1]: import pystan 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-1-7b354c723dbb> in <module>() 
----> 1 import pystan 

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/__init__.py in <module>() 
     7 import logging 
     8 
----> 9 from pystan.api import stanc, stan 
    10 from pystan.misc import read_rdump, stan_rdump 
    11 from pystan.model import StanModel 

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/api.py in <module>() 
    10 import hashlib 
    11 
---> 12 import pystan._api # stanc wrapper 
    13 from pystan._compat import string_types 
    14 from pystan.model import StanModel 

ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/_api.so, 2): Symbol not found: _PyBaseString_Type 
    Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/_api.so 
    Expected in: flat namespace 
in /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pystan/_api.so 

私は同じエラーを見ました。

In [2]: import netCDF4 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-2-f731da2de255> in <module>() 
----> 1 import netCDF4 

/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/__init__.py in <module>() 
     1 # init for netCDF4. package 
     2 # Docstring comes from extension module _netCDF4. 
----> 3 from ._netCDF4 import * 
     4 # Need explicit imports for names beginning with underscores 
     5 from ._netCDF4 import __doc__, __pdoc__ 

ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/_netCDF4.so, 2): Symbol not found: _PyCObject_Type 
    Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/_netCDF4.so 
    Expected in: flat namespace 
in /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netCDF4/_netCDF4.so 

.soファイルの問題点を教えてください。それとも、私のコンピュータ?

+0

'--target'オプションなしで' pip3 install'を呼び出そうとしましたか?私はMacPortsによってインストールされた 'pip3'を使っている限り、正しい場所に物事をインストールすることを期待しています。 '--target'でそれを実行すると、予期しないサブディレクトリが作られているのだろうか。 – jb326

+0

@ jb326、あなたはおそらく正しいでしょう。以下の答えを見てください。 – Nate

答えて

2

確かにpip3は、MacPortsによってインストールされたpipのバージョン、好ましくはpip-3.5に属していますか?私の推測では、異なるPythonインストールのpipを使用しているため、C拡張を間違ったPythonライブラリにリンクし、MacPortsのPython3.5のパッケージディレクトリにインストールを強制します。

修正するには、代わりにpip-3.5を使用してください(また、--targetオプションを省略することもできます)。

EDIT:sudo port select --set pip pip35を実行してからpipを使用してください。

EDIT:MacPorts pipのバージョンでは、実際にはpip3コマンドが提供されていないので、これは明らかに別のPythonバージョンに属しています。どちらかを見つけるにはwhich -a pip3を実行してください。

+0

ありがとう!おそらくこれはうまくいきました。私は実際にpipがPython 2.7フレームワークのバージョンを使用していたことに気付きましたが(これがPython 3.5にインストールする--targetを持っていた理由です)、これが問題を引き起こすかどうかはわかりませんでした。残念ながら(あるいは幸運なことに)、私はすでに、問題を解決した古いバージョンにコンピュータを完全に拭き取って復元し、Anacondaをインストールし、すべてのmacportsバージョンのpythonを削除する、より極端な解決策で問題を解決しました。私は欲求不満になり、それをすべて忘れました。今それは動作します。 – Nate

関連する問題