On Tue, Nov 15, 2011 at 8:03 PM, Alex Gaynor <alex.gay...@gmail.com> wrote:
>
>
> On Tue, Nov 15, 2011 at 12:56 PM, Blaine <frik...@gmail.com> wrote:
>>
>> Hi everyone. I have a cellular automata framework in C++ and I use cython
>> and cpython to run it. I found out that if I port it to pure python and run
>> it with pypy, it's close to the same performance as the C++ version. (about
>> 2x as slow, compared to 20x as slow when using pure python + cpython). When
>> I throw in other overheads with pure python libraries, using the pure python
>> and pypy is much faster than cpython with the C++ library, all things equal.
>> What I'd like to do is detect if pypy or cpython is doing the importing of
>> my module, and switch over to the pure python interface if pypy is found. As
>> it stands I have to do it manually in my module's __init__.py.
>> Is there any way to detect if my module is being imported by pypy vs
>> cpython? Either via sys, or maybe some latent variable that is present, or
>> something else. sys.argv[0] only has the script name (obviously), not the
>> interpreter call.
>> Keep up the outstanding work. Pypy is great!
>> Thanks!
>> Blaine
>>
>> _______________________________________________
>> pypy-dev mailing list
>> pypy-dev@python.org
>> http://mail.python.org/mailman/listinfo/pypy-dev
>>
>
> The canonical way is probably `import platform;
> platform.python_implementation()` which will return either "PyPy" or
> "CPython".
> Alex

If you need to support older pythons (which don't have
platform.python_implementation), we use

import sys
is_pypy = '__pypy__' in sys.builtin_module_names

or alternatively:

try:
  import __pypy__
except ImportError:
  __pypy__ = None

>
> --
> "I disapprove of what you say, but I will defend to the death your right to
> say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
> "The people's good is the highest law." -- Cicero
>
>
> _______________________________________________
> pypy-dev mailing list
> pypy-dev@python.org
> http://mail.python.org/mailman/listinfo/pypy-dev
>
>
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to