13

貢献したいので、パッケージマネージャーを使うのではなく、ソースからパンダを作りたいです。初めてパンダを作成しようとしたとき、次の手順を実行しました。

1)virtualenvを作成しました mkvirtualenv --no-site-packages pandas

2)virtualenvをアクティブ化しました

3)AnacondaCEをインストールしました。ただし、これは〜/anacondaにインストールされました。

4)クローンパンダ

5)C拡張機能を適切に構築

(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> ~/anaconda/bin/python setup.py build_ext --inplace

6)パンダを作りました

(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> ~/anaconda/bin/python setup.py build

7)マスターブランチでノーズテストを実行しました

テストに失敗しました:(パンダ)ems〜/ .virtualenvs / pandas / localrepo / pandas> nosetests pandas E ============================= =========================================エラー:失敗:ValueError(numpy.dtypeサイズが間違っている場合は、再コンパイルしてみてください)------------------------------------------ ----------------------------トレースバック(最後の最後の呼び出し):ファイル "/Users/EmilyChen/.virtualenvs/pandas/lib/ python2.7 / site-packages / nose / loader.py "、行390、loadTestsFromName addr.filename、addr.module)ファイル" /Users/EmilyChen/.virtualenvs/pandas/lib/python2.7/site-packages/ nose / importer.py "、39行目、importFromPath return self.importFromDir(dir_path、fqname)ファイル" /Users/EmilyChen/.virtualenvs/pandas/lib/python2.7/site-packages/nose/importer.py "、 86行目、importFromDir mod = load_module(part_fqname、fh、filename、desc)ファイル "/Users/EmilyChen/.virtualenvs/pandas/localrepo/pandas/pandas/init .py "、6行目、in from .import hashtable、tslib、libファイル" numpy.pxd "、行156、init pandas.hashtable(pandas / hashtable.c:20354)ValueError:numpy.dtypeのサイズが間違っています、再コンパイルしてみてください


0.001秒で1回のテストを実行

失敗(エラー= 1)

PyDataメーリングリストの誰かが言った:

NumPyがマシンの別の場所にインストールされていて、AnacondaCEがvirtualenvでうまく機能していないようです。発生するエラーは、ビルド対象のNumPyバージョンがシステムにインストールされているバージョンと一致しない場合に発生するCythonエラーメッセージです。1.7.xは1.6.xとABI互換であると考えられていました(したがってこれは起こりません)が、私はそうは思わない。はぁ

Anaconda CEライブラリのnumpyバージョンは1.7.0b2で、システムのnumpyインストールはバージョン1.5.1です。Setup.pyは、パンダをビルドしたときにAnacondaディストリビューションのライブラリのnumpyにリンクしていましたが、nosetestsが/ pandas / init .pyを実行すると、システムバージョンにリンクしていると思います。

次に、virtualenvの外部で手順を繰り返しましたが、同じエラーが発生しました。最後に、Anacondaディストリビューションを使用してパンダを構築する代わりに、すべての依存関係を新しいvirtualenvにインストールすることにしました。このように、numpyのような依存関係がvirtualenv pythonインストールのlibディレクトリに存在することがわかります。これは、パンダの場合に優先されます。initはimportステートメントを実行します。これは私がしたことです:

1)pipを使用してnumpy、dateutil、pytz、cython、scipy、matplotlib、openpyxlをインストールしました

2)c拡張機能を適切に構築

3)パンダはここに出力をインストールします:http://pastebin.com/3CKf1f9i

4)パンダが正しくインストールされなかった

(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
 cannot import name hashtable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: cannot import name hashtable

私はこの質問を調べましたが、私の場合はcythonがインストールされており、推奨される回答のようにpipを使用するのではなく、ソースから正常にビルドしようとしています。

(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> which cython
/Users/EmilyChen/.virtualenvs/pandas/bin/cython
4

1 に答える 1

31

ImportError: cannot import name hashtableソースコードディレクトリからパンダをインポートしようとすると、同じエラー( )が発生します。別のディレクトリからPythonインタープリターを起動して、パンダを再度インポートしてみてください。

于 2013-01-28T18:12:24.997 に答える