Appendix B. CPython Extensions for IronPython

WHAT'S IN THIS APPENDIX?

  • Finding extensions that work

  • Fixing extension problems

  • Finding third-party solutions to fix problems

In many cases, there's code that's already written for CPython that also works for IronPython. You've already experienced using CPython code in Chapter 6 when working with the Standard Library. The material in Chapter 6 also applies to third-party extensions. Some of these extensions will work just fine, especially if they're written in pure Python and there aren't any odd IronPython behaviors to consider (see Appendix A for details).

The sticky part comes when you try to work with CPython extensions that rely more heavily on the C basis for CPython. In this situation, you need to create your own tool to make the extension work, rely on a third-party tool to perform the heavy lifting, or simply emulate the behavior of the CPython extension using .NET code. All of these solutions have problems.

The purpose of this appendix is to provide you with some tips and techniques for making your CPython extensions run in IronPython. However, you need to face the fact that not every CPython extension will work as you'd like it to, and some won't work at all.

OBTAINING THE EXTENSIONS

You can find more than a few Python extensions on the Internet. For the most part, you see them listed simply as Python extensions — not specifically IronPython or CPython extensions. A number of these extensions are simply .py files and probably work ...

Get Professional IronPython™ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.