簡単な質問ですが、Pythonで持っている3番目のparyモジュールをpypyに認識させるにはどうすればよいですか?たとえば、次のエラーが発生します。
from tables import *
ImportError: No Module named tables
これは基本的に、実行しようとしているスクリプトで対話するために使用するpytablesライブラリが見つからないことを意味します。
純粋なPythonモジュールの場合は、次のようなものを使用して、モジュールを含むディレクトリをsys.pathに追加するだけです。
sys.path.insert(0, '/usr/local/lib')
sys.path.insert(0, os.path.expanduser('~/lib'))
これは、CPython、Pypy、およびJythonで機能します。
C拡張モジュールの場合、Pypyのcpyextを試すことができますが、一部のCPython C拡張モジュールがCPythonのCベースのランタイムの暗い隅に迷い込んでいるため、期待するすべてが実行されるわけではありません:http: //morepypy.blogspot.com/ 2010/04 / using-cpython-extension-modules-with.html
私は時々、ctypesを使用してC .soとインターフェイスするコードを記述し、CPythonとPypyの両方でそれを使用します。どちらもctypesで非常にうまく機能するためですが、CPythonではctypesが少し遅くなる可能性があります: http://docs.python .org / library / ctypes.html 最後に確認したところ、Jythonにはctypesの始まりがありましたが、少なくとも私の目的では、使用するには十分ではありませんでした。
実行時にCコンパイラを必要とする新しいインターフェイスもあります。ctypesよりも脆弱ではない可能性があります(読み取り:segfaultsの傾向があります)。ここで説明します:http: //morepypy.blogspot.com/2012/06/release-01-of-cffi.html これは私が信じているPypyプロジェクトから来ていますが、最初にCPythonで動作するように作られました。AFAIK、それはまだPypyで実行されていません。
Pypy には個別のインストール スペースがあります。したがって、pypi からインストールするモジュールは、そのスペースにインストールする必要があります。たとえば、pypy を /usr/local/pypy-1.9-32bit にインストールしました。
pip または easy_install を使用することをお勧めします。pip のインストール方法は次のとおりです。
curl curl https://bootstrap.pypa.io/get-pip.py | /usr/local/pypy-1.9-32bit/bin/pypy
また
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | /usr/local/pypy-1.9-32bit/bin/pypy
次に、新しくインストールした pip を使用してモジュールを取得します。
sudo /usr/local/pypy-1.9-32bit/bin/pip install tables
この場合、次のエラーで失敗しました。
bminton@bminton:/tmp$ sudo /usr/local/pypy-1.9-32bit/bin/pip install tables
Downloading/unpacking tables
Downloading tables-2.4.0.tar.gz (8.9Mb): 8.9Mb downloaded
Running setup.py egg_info for package tables
.. ERROR:: You need numpy 1.4.1 or greater to run PyTables!
Complete output from command python setup.py egg_info:
.. ERROR:: You need numpy 1.4.1 or greater to run PyTables!
この場合、インストールは失敗しました。これは、Tables が PyPy でまだサポートされていない Numpy に依存しているためです (Numpy は対応中ですが、http://pypy.org/numpydonate.htmlを参照してください)。ただし、多くの Python モジュールでは、この方法がうまく機能します。たとえば、この方法で logilab 制約パッケージを正常にインストールできました。
他の回答で指摘されているようにpypy
、インストールされたモジュール用に別のスペースがあります。モジュールをpypyに追加する最も簡単な方法は次のとおりです。
*.tar.gz
ファイルとして)cd
抽出されたディレクトリにpypy setup.py install
(場合によっては、前に を追加する必要がありますsudo
)モジュールのフォルダーを C:\Python27\Lib から C:\pypy-2.3.1-win32\lib-python またはインストールした場所と同等の場所にコピーします。
明らかに、これは Windows でのみ機能します。