<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Menlo;
        panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.p1, li.p1, div.p1
        {mso-style-name:p1;
        margin:0in;
        font-size:8.5pt;
        font-family:Menlo;
        color:black;}
span.s2
        {mso-style-name:s2;
        color:#B42419;}
span.s1
        {mso-style-name:s1;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Good morning,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have Qt5 5.15.5_1 installed with homebrew on my Mac M1 laptop running macOS Monterey.  I’m not able to install PyQt5 using pip in a virtualenv (using the system’s Python 3.8.9).  It appears to hang, then after 1-2 hours is killed by the
 OS.  A verbose run shows it stuck querying for input to accept the GPL license: “This is the GPL version of PyQt 5.15.7 (licensed under the GNU General Public License) for Python 3.8.9 on darwin.”, followed by the input options, but it doesn’t appear to accept
 the keyboard input.  Is there a way to get past this?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I also tried building PyQt 5.15.7 from source as described in [1].  I first installed `pyqt-builder` 1.13.0.  Then the `sip-install` approach failed during build without enough info, so running `make` separately (from the `build` directory)
 then fails apparently trying to link with libpython3.8:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="p1"><span class="s1">/Library/Developer/CommandLineTools/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names</span><span class="apple-converted-space"> 
</span><span class="s1">-arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -single_module -dynamiclib -o libpyqt5.dylib pluginloader.o moc_pluginloader.o</span><span class="apple-converted-space"> 
</span><span class="s1">-F/opt/homebrew/Cellar/qt@5/5.15.5_1/lib -L -lpython3.8 -framework QtDesigner -framework QtWidgets -framework QtGui -framework AppKit -framework Metal -framework QtXml -framework QtCore -framework DiskArbitration -framework IOKit -framework
 OpenGL -framework AGL </span><span class="apple-converted-space">   </span><o:p></o:p></p>
<p class="p1"><span class="s1">ld: warning: directory not found for option '-L-lpython3.8'</span><o:p></o:p></p>
<p class="p1"><span class="s1">Undefined symbols for architecture arm64:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyDict_Next", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyErr_Print", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::getModuleAttr(char const*, char const*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyEval_SaveThread", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::PyCustomWidgets(QObject*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyGILState_Ensure", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::PyCustomWidgets(QObject*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyGILState_Release", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::PyCustomWidgets(QObject*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyImport_ImportModule", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::getModuleAttr(char const*, char const*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyList_Append", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyLong_AsVoidPtr", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyModule_GetDict", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyObject_CallFunctionObjArgs", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyObject_CallObject", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyObject_GetAttrString", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::getModuleAttr(char const*, char const*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyType_IsSubtype", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_PyUnicode_FromKindAndData", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_Py_Initialize", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::PyCustomWidgets(QObject*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"_Py_IsInitialized", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::PyCustomWidgets(QObject*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">  </span><span class="s1">"__Py_Dealloc", referenced from:</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::importPlugins(QString const&, QStringList const&) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="apple-converted-space">      </span><span class="s1">PyCustomWidgets::getModuleAttr(char const*, char const*) in pluginloader.o</span><o:p></o:p></p>
<p class="p1"><span class="s1">ld: symbol(s) not found for architecture arm64</span><o:p></o:p></p>
<p class="p1"><span class="s1">clang: </span><span class="s2"><b>error: </b></span><span class="s1"><b>linker command failed with exit code 1 (use -v to see invocation)</b></span><o:p></o:p></p>
<p class="p1"><span class="s1">make[1]: *** [libpyqt5.dylib] Error 1</span><o:p></o:p></p>
<p class="p1"><span class="s1">make: *** [sub-designer-make_first-ordered] Error 2</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">AFAICT the correct library path is not searched, e.g.:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="p1"><span class="s1">$ find /Library/Developer -name "libpython3.8.dylib"</span><o:p></o:p></p>
<p class="p1"><span class="s1">/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/config-3.8-darwin/libpython3.8.dylib</span><o:p></o:p></p>
<p class="p1"><span class="s1">/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/libpython3.8.dylib</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’d of course prefer the `pip install` approach to building from source though.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">[1] <a href="https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html">
https://www.riverbankcomputing.com/static/Docs/PyQt5/installation.html</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks in advance,<o:p></o:p></p>
<p class="MsoNormal">-Connor<o:p></o:p></p>
</div>
</body>
</html>