<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hello,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I believe that I've solved my earlier issue with my QGIS plugin, which previously relied on a pip package. In order to avoid this dependency, I decided to include the Whitebox Workflows wheel in with my plugin. Unfortunately, however, this has increased the
 size of my plugin fairly substantially. The issue is that I need to included a wheel for each of the four supported operating systems and each are about 10MB. My plugin zip file is now a little less than 40MB. When I try to upload the new version to the QGIS
 plugin repo it is telling me that the file is too large. Does anyone know what the maximum size of a plugin zip file is? Thanks.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Regards,</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
John</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; font-family: Calibri, Arial, Helvetica, sans-serif; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<p style="margin-top: 0px; margin-bottom: 0px;">Prof. John Lindsay</p>
<p style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
<span style="font-size: 12pt; color: rgb(0, 0, 0);">Dept. of Geography, Environment & Geomatics,</span></p>
<p style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
The University of Guelph,</p>
<p style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
Room 122, Hutt Building,</p>
<p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">E-mail: jlindsay@uoguelph.ca</span></p>
<p style="margin-top: 0px; margin-bottom: 0px;">Phone: (519) 824-4120 ext. 56074</p>
<p style="margin-top: 0px; margin-bottom: 0px;">Web: <a href="https://geg.uoguelph.ca/faculty/lindsay-john" id="OWA07041edd-2f17-c9c8-774f-fe4627c5c667" class="OWAAutoLink" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://geg.uoguelph.ca/faculty/lindsay-john</a></p>
<p style="margin-top: 0px; margin-bottom: 0px;">Research page: <a href="https://jblindsay.github.io/ghrg/index.html" id="OWA41e20788-dc1e-cf49-0081-1390dfb14632" class="OWAAutoLink" title="https://jblindsay.github.io/ghrg/index.html" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://jblindsay.github.io/ghrg/index.html</a></p>
<p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">WhiteboxTools GIS project:
<a href="https://www.whiteboxgeo.com/" id="OWA40172acd-0067-25b0-62fd-61081eea95a0" class="OWAAutoLink" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://www.whiteboxgeo.com/</a></span></p>
<p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Twitter:
<a href="https://twitter.com/whiteboxgeo" id="OWA15f6710d-32f4-f241-492f-1df94127ab73" class="OWAAutoLink" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://twitter.com/whiteboxgeo</a></span><br>
</p>
</div>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div dir="ltr" id="divRplyFwdMsg"><span style="font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><b>From:</b> QGIS-Developer <qgis-developer-bounces@lists.osgeo.org> on behalf of John Lindsay via QGIS-Developer <qgis-developer@lists.osgeo.org><br>
<b>Sent:</b> Friday, January 19, 2024 10:00 AM<br>
<b>To:</b> qgis-developer@lists.osgeo.org <qgis-developer@lists.osgeo.org><br>
<b>Subject:</b> [QGIS-Developer] QGIS plugin depends on pypi package</span>
<div> </div>
</div>
<div style="direction: ltr;"><span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Hello everyone,</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">I am developing a new QGIS plugin (<a href="https://plugins.qgis.org/plugins/whitebox_workflows_for_qgis/#plugin-manage" id="OWA6df512b2-6399-b6c1-1ea2-987fca59d34f" class="OWAAutoLink" data-auth="NotApplicable" data-loopstyle="linkonly">https://plugins.qgis.org/plugins/whitebox_workflows_for_qgis/#plugin-manage</a>)
 that serves as a frontend for a Python geospatial analysis library called Whitebox Workflows for Python (WbW). The plugin seems to work well with on major exception, it requires that the user have WbW installed. It can be installed quite easily using pip (pip
 install whitebox-workflows), however, I know that QGIS uses its own localized version of Python, which seems to lack a terminal app access (at least on MacOS). Besides, a better solution would be for the plugin to install this package via pip when it is itself
 first installed and launched. I tried to accomplish this with the following code:</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><a href="https://github.com/jblindsay/whitebox_workflows_for_qgis/blob/4e463262f6cfd1987afa2f3f7e0e79656eb8d27e/whitebox_workflows_for_qgis_provider.py#L56" id="OWA0de5cc0a-c478-b1d8-4534-b44b745b54e6" class="x_OWAAutoLink" data-linkindex="0" data-auth="NotApplicable" data-loopstyle="linkonly" style="margin: 0px;">https://github.com/jblindsay/whitebox_workflows_for_qgis/blob/4e463262f6cfd1987afa2f3f7e0e79656eb8d27e/whitebox_workflows_for_qgis_provider.py#L56</a></span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-size: 15px; color: rgb(36, 36, 36);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">This code, which runs whenever the plugin is launched, first checks to see if whitebox_workflows can be imported
 and if not, it runs pip from the Python script to install it. Unfortunately, some users have reported issues with this not working correctly:</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><a href="https://github.com/jblindsay/whitebox_workflows_for_qgis/issues/1" id="OWA6978695c-62a6-b6c3-bffe-4c43ef1ef24b" class="x_OWAAutoLink" data-linkindex="1" data-auth="NotApplicable" data-loopstyle="linkonly" style="margin: 0px;">https://github.com/jblindsay/whitebox_workflows_for_qgis/issues/1</a></span></div>
<div style="background-color: rgb(255, 255, 255); margin: 0px;">
<div style="margin: 16px 0px; max-width: 800px; min-width: 424px;">
<div style="margin: 0px; height: 116px;">
<div style="direction: ltr; text-align: left; margin: 0px;"><span style="font-size: 15px; color: rgb(36, 36, 36);">
<button style="border:none; font-size:16px; font-family:controlIcons!important; margin:0px; padding:8px; outline:transparent; border-radius:2px; box-sizing:border-box; display:inline-block; text-decoration:none; text-align:center; width:32px; height:32px; left:5px; top:5px; z-index:1" data-is-focusable="true" title="Show original size" class="x_ms-Button x_ms-Button--icon x_wD8TJ x_root-685" type="button">
<div style="direction: ltr; text-align: left; line-height: 16px; margin: 0px 4px; height: 16px; display: inline-block;">
<span style="font-family: controlIcons;"></span></div>
</button></span></div>
<table id="LPContainer627363" style="direction: ltr; text-align: left; border-width: 1px; border-style: solid; border-color: rgb(200, 200, 200); border-radius: 2px; width: 1004.07px;">
<tbody>
<tr>
<td style="direction: ltr; text-align: left;">
<div style="direction: ltr; text-align: left; margin: 0px 12px 0px 0px; height: 120px;">
<span style="font-size: 15px; color: rgb(36, 36, 36);"><a href="https://github.com/jblindsay/whitebox_workflows_for_qgis/issues/1" id="LPImageAnchor627363" data-linkindex="2" data-auth="NotApplicable" style="margin: 0px;" data-loopstyle="linkonly"><img id="LPThumbnailImageId627363" width="240" height="120" style="width: 240px; height: 120px; margin: 0px; display: block;" src="https://opengraph.githubassets.com/a248a1a51b43baa531f4fdf47f85868a01c5785c3dded22234ce269d2c64c9e4/jblindsay/whitebox_workflows_for_qgis/issues/1"></a></span></div>
</td>
<td style="direction: ltr; text-align: left; width: 692.07px;">
<div style="direction: ltr; text-align: left; margin: 0px 8px 12px 0px;"><span style="font-family: wf_segoe-ui_light, "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 21px; color: rgb(36, 36, 36); font-weight: 300;"><a href="https://github.com/jblindsay/whitebox_workflows_for_qgis/issues/1" id="LPUrlAnchor627363" data-linkindex="3" data-auth="NotApplicable" style="text-decoration: none; margin: 0px;" data-loopstyle="linkonly">Installation
 in QGis fails · Issue #1 · jblindsay/whitebox_workflows_for_qgis</a></span></div>
<div style="direction: ltr; text-align: left; margin: 0px 8px 12px 0px; max-height: 100px;">
<span style="font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; color: rgb(102, 102, 102);">AttributeError: 'NoneType' object has no attribute 'write' Traceback (most recent call last): File "C:\\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\\profiles\\default/python/plugins\\whitebox_work...</span></div>
<div style="direction: ltr; text-align: left; margin: 0px; font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; color: rgb(166, 166, 166);">
github.com</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">So now I'm left trying to figure out what the recommended approach to installing QGIS plugin dependencies is. Any
 advice from anyone that has successfully dealt with this problem previously? Thanks.</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Regards,</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br>
</span></div>
<div style="direction: ltr; text-align: left; background-color: rgb(255, 255, 255); margin: 0px;">
<span style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">John Lindsay</span></div>
<div style="direction: ltr; font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="x_Signature">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-size:12pt; font-family:Calibri,Arial,Helvetica,sans-serif; color:rgb(0,0,0); background-color:rgb(255,255,255)" dir="ltr" id="x_divtagdefaultwrapper">
<p style="margin-top: 0px; margin-bottom: 0px;">Prof. John Lindsay</p>
<p style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
<span style="font-size: 12pt; color: rgb(0, 0, 0);">Dept. of Geography, Environment & Geomatics,</span></p>
<p style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
The University of Guelph,</p>
<p style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif;">
Room 122, Hutt Building,</p>
<p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">E-mail: jlindsay@uoguelph.ca</span></p>
<p style="margin-top: 0px; margin-bottom: 0px;">Phone: (519) 824-4120 ext. 56074</p>
<p style="margin-top: 0px; margin-bottom: 0px;">Web: <a href="https://geg.uoguelph.ca/faculty/lindsay-john" id="OWA0776c53f-139d-880f-1a64-1dd856c3b753" class="OWAAutoLink" data-auth="NotApplicable" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://geg.uoguelph.ca/faculty/lindsay-john</a></p>
<p style="margin-top: 0px; margin-bottom: 0px;">Research page: <a href="https://jblindsay.github.io/ghrg/index.html" id="OWA8fa205ef-4a16-0c30-81c4-1dafc7f26d08" class="OWAAutoLink" title="https://jblindsay.github.io/ghrg/index.html" data-auth="NotApplicable" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://jblindsay.github.io/ghrg/index.html</a></p>
<p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">WhiteboxTools GIS project:
<a href="https://www.whiteboxgeo.com/" id="OWAf31ff0be-f6f6-8121-6972-51abe5a7c19d" class="OWAAutoLink" data-auth="NotApplicable" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://www.whiteboxgeo.com/</a></span></p>
<p style="margin-top: 0px; margin-bottom: 0px;"><span style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">Twitter:
<a href="https://twitter.com/whiteboxgeo" id="OWA29fa33c8-3e66-ddf7-7185-c652f82f849a" class="OWAAutoLink" data-auth="NotApplicable" data-loopstyle="linkonly" style="margin-top: 0px; margin-bottom: 0px;">
https://twitter.com/whiteboxgeo</a></span></p>
</div>
</div>
</body>
</html>