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