Skip to main content

GenericF2PY demostrates how to handle FORTRAN binaries in python modules.

Project description

https://travis-ci.org/sonofeft/GenericF2PY.svg?branch=master https://img.shields.io/static/v1?label=python&message=2.7,3.5,3.6,3.7&color=blue https://img.shields.io/pypi/l/GenericF2PY.svg

Genericf2Py Demostrates How To Handle Fortran Binaries In Python Modules.

See the Code at: https://github.com/sonofeft/GenericF2PY

See the Docs at: http://genericf2py.readthedocs.org/en/latest/

See PyPI page at:https://pypi.python.org/pypi/genericf2py

Overview

GenericF2PY focuses on the use of f2py for integrating FORTRAN modules into python PyPI projects.

GenericF2PY has the following goals:

  • Support a variety of platforms Windows/Linux/MacOS/etc.

  • Support a variety of python distributions (2 & 3).

  • Support both 32 & 64 bit installations.

Based on my experience developing GenericF2PY, I believe the best way to achieve the above goals is:

  • Distribute only source code (Python & FORTRAN).

  • Provide guidance for setting up f2py on the user’s platform.

  • Recommend users install with “pip install <packagename>”.

  • Provide guidance for correcting any error messages.

Binary Distributions

When binary distributions install properly, they are the most convenient approach for users… HOWEVER

When binary distributions fail, they can be confounding for many users and greatly impede or even preclude the use of your project for those users.

The sheer difficulty of maintaining binaries for all possible systems can become overwhelming.

Binary distributions can fail for a variety of reasons:

  • Compiled against wrong version of numpy

  • Missing or wrong version of system libraries

  • Environment variable problems (PATH, LIBRARY_PATH, CC, GCC, etc.)

  • Security Restrictions

  • Unknown Unknowns

It is for these reasons, that I recommend distributing source code only.

I’m weighing the user’s difficulty of installing f2py against the user’s difficulty of debugging your potentially failed binary distribution and deciding that installing f2py is the smaller burden. Also, the user can Google f2py and find answers. You will be the user’s only source of information on your binaries for all possible systems.

If you want to make binary distributions available, it might be best to either:

  • create binary wheels in a Github pip-wheels directory

  • provide an option to install from source code.

Users can be directed to that Github pip-wheels directory or given source-install instructions as required.

Keywords: genericf2py setuptools development Platform: any Classifier: Development Status :: 4 - Beta Classifier: Operating System :: OS Independent Classifier: Intended Audience :: Developers Classifier: Intended Audience :: End Users/Desktop Classifier: Topic :: Software Development :: Build Tools Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3) Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Description-Content-Type: text/x-rst Provides-Extra: dev Provides-Extra: test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genericf2py-0.1.19.tar.gz (209.6 kB view details)

Uploaded Source

File details

Details for the file genericf2py-0.1.19.tar.gz.

File metadata

  • Download URL: genericf2py-0.1.19.tar.gz
  • Upload date:
  • Size: 209.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.4

File hashes

Hashes for genericf2py-0.1.19.tar.gz
Algorithm Hash digest
SHA256 a249e5530380f543cd48163e88bffc6152f9acb280685f7dd30c6b5c81bcfc9f
MD5 1e7057f345f886860b0354debb832769
BLAKE2b-256 fd5d567eaf261c3455c7f28c0c72ce68d0809f613ed1c4d894f401aadf9b9e64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page