Для чистых модулей Python просто добавьте каталог, содержащий модули, в ваш sys.path, используя что-то вроде:
sys.path.insert(0, '/usr/local/lib')
sys.path.insert(0, os.path.expanduser('~/lib'))
Это работает для CPython, Pypy и Jython.
Что касается модулей расширения C, вы можете попробовать cpyext Pypy, но он не запустит все, на что вы могли бы надеяться, потому что некоторые модули расширения CPython C блуждают в темных углах среды выполнения CPython на основе C: http://morepypy.blogspot.com/2010/04/using-cpython-extension-modules-with.html
Иногда я пишу код, который использует ctypes для взаимодействия с C .so, а затем использую его как на CPython, так и на Pypy, потому что они оба довольно хорошо работают с ctypes, но ctypes может быть довольно медленным на CPython: http://docs.python.org/library/ctypes.html Последнее, что я проверял, в Jython были зачатки ctypes, но это было недостаточно далеко для использования, по крайней мере, не для моих целей.
Также есть новый интерфейс, который требует компилятора C во время выполнения. Скорее всего, он будет менее хрупким (читай: склонным к сбоям), чем ctypes. Это описано здесь: http://morepypy.blogspot.com/2012/06/release-01-of-cffi.html Я полагаю, что он взят из проекта Pypy, но сначала он был создан для работы на CPython. Насколько я знаю, он еще не работает на Pypy.
person
user1277476
schedule
25.06.2012