jblindsay / whitebox_workflows_for_qgis

A QGIS frontend for Whitebox Workflows for Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Installation in QGis fails

ThomasStruller opened this issue · comments

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_workflows_for_qgis\whitebox_workflows_for_qgis_provider.py", line 56, in init
import('whitebox_workflows')
File "C:\OSGeo4W/apps/qgis/./python\qgis\utils.py", line 888, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ModuleNotFoundError: No module named 'whitebox_workflows'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\OSGeo4W/apps/qgis/./python\qgis\utils.py", line 448, in startPlugin
plugins[packageName].initGui()
File "C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\whitebox_workflows_for_qgis\whitebox_workflows_for_qgis.py", line 57, in initGui
self.initProcessing()
File "C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\whitebox_workflows_for_qgis\whitebox_workflows_for_qgis.py", line 53, in initProcessing
self.provider = WhiteboxWorkflowsProvider()
File "C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\whitebox_workflows_for_qgis\whitebox_workflows_for_qgis_provider.py", line 60, in init
pip.main(['install', 'whitebox-workflows'])
File "C:\OSGeo4W\apps\Python39\lib\site-packages\pip_init_.py", line 13, in main
return _wrapper(args)
File "C:\OSGeo4W\apps\Python39\lib\site-packages\pip_internal\utils\entrypoints.py", line 35, in _wrapper
sys.stderr.write(
AttributeError: 'NoneType' object has no attribute 'write'

Python-Version: 3.9.18 (heads/master:c290dc6, Jan 14 2024, 01:36:02) [MSC v.1929 64 bit (AMD64)]
QGIS-Version: 3.34.2-Prizren Prizren, 7d199797fc

Python-Pfad:
C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ThToolBox
C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ProcessX
C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\postgis_toolbox
C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\pdaltools
C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\contour
C:/OSGeo4W/apps/qgis/./python
C:/Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/OSGeo4W/apps/qgis/./python/plugins
C:\OSGeo4W\apps\grass\grass83\etc\python
C:\Users\thomas.struller\Documents
C:\OSGeo4W\bin\python39.zip
C:\OSGeo4W\apps\Python39\DLLs
C:\OSGeo4W\apps\Python39\lib
C:\OSGeo4W\bin
C:\OSGeo4W\apps\Python39
C:\OSGeo4W\apps\Python39\lib\site-packages
C:\OSGeo4W\apps\Python39\lib\site-packages\win32
C:\OSGeo4W\apps\Python39\lib\site-packages\win32\lib
C:\OSGeo4W\apps\Python39\lib\site-packages\Pythonwin
C:/Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\thomas.struller\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\DigitizingTools\tools
C:\Users\thomas.struller\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\DigitizingTools
C:\Users/thomas.struller/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\qgis_resource_sharing
C:\Users\thomas.struller\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis_resource_sharing
C:\Users\thomas.struller\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\qgis_resource_sharing\ext_libs
C:\Users\thomas.struller\AppData\Roaming\QGIS\QGIS3\profiles\default\python\site-packages
W:/qgis

Thanks for taking the time to report this error and it is very helpful. That is a strange error for sure. It's clear that No module named 'whitebox_workflows' would indicate that it is unable to find the Whitebox Workflows library installed. When the frontend first loads, it tries to import the Whitebox Workflows library to see if it's installed right here:

If it is unable to find the library installed, it then tries to install it using pip, here:

pip.main(['install', 'whitebox-workflows'])

Given this first test is contained within a 'try' block, I'm admittedly confused as to why this is not working. Can I ask, does the frontend not load at all for you then? Can you see the tools at all? If so, can any of them run for you, or do you not see the frontend at all?

Okay, I've just released v1.0 of this plugin, which should resolve this issue. I'm closing it now, but please feel free to re-open it if you encounter this issue after updating the plugin. Thank you once again for reporting this.