Giter Club home page Giter Club logo

symengine-wheels's Introduction

Repository to build wheels

We are using this repo to build wheels for symengine.py. Instead of using the multibuild infrastructure, we are using conda-forge infrastructure because of few reasons

  1. Dependencies like LLVM which take a lot of time are pre-built.
  2. cross-compiling is supported.

In order to use conda-forge built dependencies, there are a few catches due to the use of recent libgcc and libsdtcxx. In order to do that, we need to do the following for Linux,

  1. If C shared libraries are used, they need to be built with -static-libgcc or cross our fingers that they don't need a newer version of libgcc. (We checked and they didn't) Else use static libraries.
  2. Use only static libraries for C++ dependencies.
  3. Build the wrapper with -static-libgcc -static-libstdcxx

For macOS we need to do the following,

  1. Use only static libraries for C++ dependencies.
  2. Link in libc++ statically or hope that the dependencies don't use newer features of libc++. (We checked and they didn't)

For Windows,

  1. Hope that the user has install Visual C++ 2017 Redistributable.

symengine-wheels's People

Contributors

conda-forge-admin avatar github-actions[bot] avatar isuruf avatar jakirkham avatar ocefpaf avatar regro-cf-autotick-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

mtreinish isuruf

symengine-wheels's Issues

macOS bigsur arm64 wheel broken

python (homebrew) crashes upon importing symengine:

SiMini:~ $ pip3 install symengine
Collecting symengine
  Using cached symengine-0.7.0.post1-cp39-cp39-macosx_11_0_arm64.whl (14.6 MB)
Installing collected packages: symengine
Successfully installed symengine-0.7.0.post1
SiMini:~ $ python3 -c 'import symengine'
Killed: 9

Tested wheels for Python 3.12

Thanks for releasing the new wheels. I have tested the new wheels for Python 3.12 on Linux and MacOS (x64) and as far as I can see they work fine.

Missing wheels for Python 3.9 on PYPI

symengine 0.11.0 are missing wheels for Python 3.9 on PyPI. Perhaps this came from the PyPI quota issue, but I report it in case it wasn't related.

Cannot use 0.7.0 wheels on Windows

I tried symengine 0.7.0 on Windows in github actions and get the following errors when doing import symengine. This worked when using symengine 0.6.1

  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.
  ________________________ ERROR collecting test session ________________________
  c:\hostedtoolcache\windows\python\3.7.9\x64\lib\importlib\__init__.py:127: in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
  <frozen importlib._bootstrap>:1006: in _gcd_import
      ???
  <frozen importlib._bootstrap>:983: in _find_and_load
      ???
  <frozen importlib._bootstrap>:967: in _find_and_load_unlocked
      ???
  <frozen importlib._bootstrap>:677: in _load_unlocked
      ???
  .tox\py37\lib\site-packages\_pytest\assertion\rewrite.py:170: in exec_module
      exec(co, module.__dict__)
  tests\nonmem\conftest.py:3: in <module>
      import pharmpy
  .tox\py37\lib\site-packages\pharmpy\__init__.py:18: in <module>
      from .random_variables import RandomVariables
  .tox\py37\lib\site-packages\pharmpy\random_variables.py:7: in <module>
      import symengine
  .tox\py37\lib\site-packages\symengine\__init__.py:12: in <module>
      import symengine.lib.symengine_wrapper as wrapper
  E   ImportError: DLL load failed: The specified module could not be found.

No wheel for python 3.9/Windows on PyPI

Both MacOS and Linux have wheels for Python 3.9 on PyPI, but not Windows. This makes symengine difficult to install on Windows.

Let me know if there is anything I can do to help fix this.

Add 32bit platform wheels

It would be great if there were wheels published to PyPI for 32bit platforms for projects that support 32bit platforms. This is primarily a request to just to add builds for i686 manylinux and win32 wheels.

I took a look at doing this but got a bit lost in all the conda specific tooling to do the build and wasn't sure how to setup the machinery to setup a 32 bit conda env. For other projects where I've done this I've used https://github.com/joerick/cibuildwheel/ to build the wheels which automates the builds in CI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.