在设置PyCharm和PyQGIS时修复“ SDK似乎无效”错误?


11

我想按照本博文解释的方式设置PyCharm:为PyQGIS和Qt设置PyCharm

我按照指示进行了所有操作,但是在添加项目解释器时,出现了以下错误消息:

皮查姆

有人对此有解决方案吗?


您不会碰巧混合使用64位和32位版本的QGIS和/或Python?
gsherman 2014年

我有64位QGIS,但我不知道如何检查我的PyCharm版本。顺便说一句,我得到了Win7 64bit
KrzysztofŻuraw2014年

看看这个最近的文章,看看它是否提供任何提示,您的情况:spatialgalaxy.com/2014/10/09/...
gsherman

非常感谢你!到现在为止,它已经成功了,我用pycharm搜索了远程调试的方法,但是没有任何效果。
KrzysztofŻuraw2014年

我有同样的问题。查看以下网址。它帮助我讨论了问题

Answers:


3

从评论看来,这个问题的提问者似乎可以通过阅读博客文章“ Windows PyQGIS快速入门入门”来解决他们的问题。

在该博客中,所提供的建议似乎是:

我们只更改了最后一行,在start语句中添加了指向IDE(PyCharm)的路径。如果将其保存到pycharm.cmd之类的文件中,则可以双击它以启动PyCharm。相同的方法适用于其他IDE,例如PyDev。


3

如注释中所述和@PolyGeo所述,《Windows PyQGIS快速入门指南》中的批处理脚本可能已过时。The SDK seems invalid使用该脚本出现在PyCharm 2016.3中。

我怀疑它需要包含更多路径,特别是(也许)存在的pip.exe路径%OSGEO4W_ROOT%\apps\Python27\Scripts。因此,我将其和所有其他路径包括在内(不确定需要哪一条,也许有些不必要,但没有时间逐一测试):

@echo off

SET OSGEO4W_ROOT=C:\Program Files\QGIS 2.18
SET PYCHARM="C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.3.2\bin\pycharm.exe"

CALL %OSGEO4W_ROOT%\bin\o4w_env.bat
CALL %OSGEO4W_ROOT%\apps\grass\grass-7.0.5\etc\env.bat

path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-7.0.5\lib

SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\bin
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Scripts
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib\site-packages
SET PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\DLLs
SET QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

start "PyCharm aware of QGIS" /B %PYCHARM% %*

然后就可以了。编辑路径以匹配您的环境。

无论如何,最近python / conda安装如何在我的环境中注册PATH或PYTHONPATH,对于脚本中的QGIS python路径,我也遵循相同的方法。


使用PyCharm 2018.3.7,这就是我需要的。谢谢。
HFBrowning

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.