Skip to content

Quickfix fails to install on Mac, Big Sur + Xcode 12.5  #357

Closed
quickfix/quickfix-package
#8
@robertbetts

Description

@robertbetts

After updating Mac OSX to Big Sur + Xcode 12.5 I can no longer perform a successful pip3 install quickfix(==1.15.1)

I ran into a compile error :

    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/opt/[email protected]/include -DPYTHON_MAJOR_VERSION=3 -DHAVE_STD_SHARED_PTR -DHAVE_STD_UNIQUE_PTR -I/usr/local/include -I/usr/local/opt/[email protected]/include -I/usr/local/opt/sqlite/include -I/Users/robertb/Documents/Dev/exchange/venv/include -I/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c C++/FieldConvertors.cpp -o build/temp.macosx-11-x86_64-3.9/C++/FieldConvertors.o -std=c++0x -Wno-deprecated -Wno-unused-variable -Wno-deprecated-declarations -Wno-maybe-uninitialized
    warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
    In file included from C++/FieldConvertors.cpp:37:
    C++/double-conversion/diy-fp.cc:29:10: fatal error: 'double-conversion/diy-fp.h' file not found
    #include "double-conversion/diy-fp.h"
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 warning and 1 error generated.
    error: command '/usr/bin/clang' failed with exit code 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Users/robertb/Documents/Dev/exchange/venv/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/24/vzbdmys17w38265p013lx7lm0000gn/T/pip-install-vq12nbin/quickfix_d5634dd8561141e08e72e5924d6591fe/setup.py'"'"'; __file__='"'"'/private/var/folders/24/vzbdmys17w38265p013lx7lm0000gn/T/pip-install-vq12nbin/quickfix_d5634dd8561141e08e72e5924d6591fe/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/24/vzbdmys17w38265p013lx7lm0000gn/T/pip-record-ozk6hu4z/install-record.txt --single-version-externally-managed --compile --install-headers /Users/robertb/Documents/Dev/exchange/venv/include/site/python3.9/quickfix Check the logs for full command output.

I had to perform a few steps to get around this.

  • Cloned the project from Github. the underling quickfix library compiles as per standard instructions.
  • Cloned the quickfix-package project
  • Tweaked the packaging scripts
  • Path changes to includes in code copied to quickfix-python/C++/double-conversion/ e.g. changing #include "double-conversion/utils.h" to #include "utils.h".
  • reference syntax changes in quickfix-python/C++/QuickfixPython.cpp e.g. changing #include <config.h> to #include "config.h"

I could then run python setup.py bdist successfully.

The second problem was when running pip install quickfix-1.15.1.macosx-11-x86_64.tar.gz , quickfix was installed as UNKNOWN==0.0.0 .

When I ran python setup install from the quickfix-python folder , I get a successful package install.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions