question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Better setup script

See original GitHub issue

We need a better way of ensuring pybind11 is installed before any of the C code is compiled. For some reason placing pybind11 in setup_requires is not sufficient, and the code reaches the import pybind11 line (when resolving the include paths) before it’s actually installed. The suggested workaround here is to use subprocess to pip install pybind11, which is horribly hacky. @dfm, any ideas?

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
dfmcommented, Dec 11, 2019

The conda compiler crashes if you only have 10.7. I’m not sure what number is required though!

1reaction
dfmcommented, Dec 11, 2019

You definitely don’t want to do that!!!11!!!1!!1!

There are a few issues with the current setup (e.g. setuptools_scm version 3.4 doesn’t exist yet so that dep can’t be satisfied) but otherwise the pip install works just fine for me even in a fresh environment without pybind11 preinstalled. Here’s what I did:

conda create -p ./env python=3.7 pip
conda activate ./env
which python
python -m pip install -e .

This runs fine after applying the following diff:

diff --git a/pyproject.toml b/pyproject.toml
index 4280939a..f8db24fe 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,5 +1,5 @@
 [build-system]
-requires = ["setuptools>=42", "wheel", "numpy", "pybind11", "setuptools_scm[toml]>=3.4"]
+requires = ["setuptools>=42", "wheel", "numpy", "pybind11", "setuptools_scm[toml]>=3.3"]
 build-backend = "setuptools.build_meta"

 [tool.black]
diff --git a/setup.py b/setup.py
index 43945e7b..a1882897 100644
--- a/setup.py
+++ b/setup.py
@@ -132,7 +132,7 @@ class BuildExt(build_ext):
     l_opts = {"msvc": [], "unix": []}

     if sys.platform == "darwin":
-        darwin_opts = ["-stdlib=libc++", "-mmacosx-version-min=10.7"]
+        darwin_opts = ["-stdlib=libc++", "-mmacosx-version-min=10.14"]
         c_opts["unix"] += darwin_opts
         l_opts["unix"] += darwin_opts
Read more comments on GitHub >

github_iconTop Results From Across the Web

<script setup> | Vue.js
<script setup> is a compile-time syntactic sugar for using Composition API ... Ability to declare props and emitted events using pure TypeScript; Better...
Read more >
The 101 guide to Script Setup in Vue 3 - VueDose
Don't you know about Script Setup yet? Check out this short article now and learn the nicest way to define a Vue component...
Read more >
Vue.js Script Setup in Less than 5 Minutes
Learn how to use the Vue.js script setup syntax for making the most out of the Composition API in under 5 mintues.
Read more >
Explaining The New script setup Type in Vue 3 - LearnVue
Now that we know what <script setup> even is and why it can be useful, let's take a look at some of its...
Read more >
Understanding the new script setup with (defineProps ... - Netlify
Learn the fundamentals of Vue 3.2 script setup feature with special APIs like defineProps and defineEmits.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found