Frequently Asked Questions

Which Python extension modules are supported?

The PFC Python environment contains the following extension modules:

  • numpy 1.13.0 Array operations
  • scipy 1.0.0 Collection of scientific libraries
  • networkx 2.1 Graph theory algorithms
  • fipy 3.1 Finite volume
  • numexpr 2.6.4 Fast array expression evaluator.
  • pyside 5.12.0 GUI programming via the Qt binding for Python

Can I use other Python extension modules with PFC?

It is possible to use most 3rd party Python extension modules with PFC. Extension modules can be installed with the pip executable shipped with PFC.

Extension modules installed in the site-packages directory of the PFC distribution are deleted during PFC upgrades. Install extension modules via the user scheme to avoid this problem. See: https://docs.python.org/2/install/#alternate-installation-the-user-scheme This typically involves adding the --user command line option to pip or other installer scripts. This installs the modules to: C:\Users\<username>\AppData\Roaming\Python\Python27\site-packages

If you have another 64-bit installation of Python 3.6, the sys.path variable can be changed to include the extension modules in that installation.

Is Python faster?

Doing an operation in Python is about 10 % faster than the equivalent operation in FISH. Larger performance gains can be achieved by expressing loops as numpy array operations. Extension modules created with Cython work with PFC and can yield significant performance improvements. See http://cython.org/ for more information about the Cython compiler.

Can I use the IPython Notebook (or Jupyter) with PFC?

No, the Python interpreter is embedded within PFC so it cannot be loaded as an extension module in an external Python interpreter. Itasca may consider developing a extension module build target for PFC if there is sufficient interest.