I would like to share the solution I found to integrate PyCharm and PyQGIS in an effective way to run standalone scripts: **Setup:** - Windows 10 - QGIS 3.10.4 installed in *c:\Program Files\QGIS 3.10* - PyCharm 2020.1.1 installed in *c:\Program Files\JetBrains\PyCharm Community Edition 2020.1.1\bin\pycharm64.exe* I can start PyCharm from a batch file that looks like the following (note that the *QT_PLUGIN_PATH* is slightly different than in your case): ``` @echo off set OSGEO4W_ROOT=c:\PROGRA~1\QGIS3~1.10 set path=%OSGEO4W_ROOT%\bin;%WINDIR%\system32;%WINDIR%;%WINDIR%\system32\WBem call o4w_env.bat call qt5_env.bat call py3_env.bat @echo off path %OSGEO4W_ROOT%\apps\qgis-ltr\bin;%PATH% set QGIS_PREFIX_PATH=%OSGEO4W_ROOT:\=/%/apps/qgis-ltr set GDAL_FILENAME_IS_UTF8=YES set VSI_CACHE=TRUE set VSI_CACHE_SIZE=1000000 set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis-ltr\qtplugins;%QT_PLUGIN_PATH% set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis-ltr\python;%PYTHONPATH% set PYCHARM="c:\Program Files\JetBrains\PyCharm Community Edition 2020.1.1\bin\pycharm64.exe" @echo on start "PyCharm with QGIS knowledge!" /B %PYCHARM% %* ``` For PyCharm to recognize and use the processing module, I need to manually add to the interpreter path the folder *%OSGEO4W_ROOT%\apps\qgis-ltr\python\plugins*, as shown in the next picture: [![Manually add the processing module folder to Python interpreter path][1]][1] After that, PyCharm can interact with the processing module: [![PyCharm recognies the processing module][2]][2] Finally, I prepared a small code excerpt that replicates your example and uses the ```native:extractvertices``` algorithm: ``` QgsApplication.setPrefixPath(r"c:\Program Files\QGIS 3.10\apps\qgis-ltr", True) qgs = QgsApplication([], False) qgs.initQgis() sys.path.append(os.path.join(QgsApplication.prefixPath(), "python", "plugins")) import processing from processing.core.Processing import Processing Processing.initialize() QgsApplication.processingRegistry().addProvider(QgsNativeAlgorithms()) s_lyr_gpk = os.path.join("Shp", "BOUNDARIES3D.shp") s_lyr_name = "Boundaries" lyr = QgsVectorLayer(s_lyr_gpk, s_lyr_name, 'ogr') if not lyr.isValid(): print("Layer {} is not valid".format(s_lyr_name)) s_alg = 'native:extractvertices' out = os.path.join("d:\Data\Output", "extracted_vertices_script.gpkg") di_param = { "INPUT": lyr, "OUTPUT": out } feedback = QgsProcessingFeedback() try: di_out = processing.run(s_alg, di_param, feedback=feedback) except QgsProcessingException as e: print(e) qgs.exitQgis() sys.exit(1) print("Vertices extracted to file {}.".format(di_out["OUTPUT"])) qgs.exitQgis() ``` I can run this script directly from PyCharm and get the output geopackage file correctly written. In my case, no error related to missing QT platform plugin is raised (see image below): [![Successful script execution from PyCharm][3]][3] I hope this helps. [1]: https://i.sstatic.net/LwEMB.png [2]: https://i.sstatic.net/q1bqI.png [3]: https://i.sstatic.net/r4r2j.png