PyCharm 2019 không hoạt động với QGIS nữa


14

Kể từ khi cập nhật lên PyCharm 2019, tôi không thể tải các mô-đun Python của QGIS. Tôi cũng không thể sử dụng hoàn thành tự động. Tôi đã xóa bộ đệm (bằng cách vô hiệu hóa bộ đệm trong PyCharm và cũng bằng cách xóa thư mục "hệ thống" trong thư mục cài đặt người dùng), dường như không có gì hoạt động.

Khi khởi động bảng điều khiển Python bên trong PyCharm và gõ "nhập qgis.core", tôi gặp lỗi sau:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "C:\OSGEO4~1\apps\qgis-ltr\python\qgis\core\__init__.py", line 27, in <module>
    from qgis._core import *
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.

Một cái gì đó dường như bị phá vỡ, trong PyCharm 2018.3 mọi thứ đều ổn. Các môi trường sys.path và cài đặt trình thông dịch dường như là chính xác:

['C:\\Program Files\\JetBrains\\PyCharm Community Edition '
 '2018.2.2\\helpers\\pydev',
 'C:\\OSGEO4~1\\apps\\qgis-ltr\\python',
 'C:\\OSGEO4~1\\apps\\qgis-ltr\\python\\plugins',
 'C:\\Program Files\\JetBrains\\PyCharm Community Edition '
 '2018.2.2\\helpers\\third_party\\thriftpy',
 'C:\\Program Files\\JetBrains\\PyCharm Community Edition '
 '2018.2.2\\helpers\\pydev',
 'C:\\OSGeo4W64\\apps\\Python37\\python37.zip',
 'C:\\OSGEO4~1\\apps\\Python37\\DLLs',
 'C:\\OSGEO4~1\\apps\\Python37\\lib',
 'C:\\OSGeo4W64\\apps\\Python37',
 'C:\\OSGEO4~1\\apps\\Python37',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages\\win32',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages\\win32\\lib',
 'C:\\OSGEO4~1\\apps\\Python37\\lib\\site-packages\\Pythonwin']

Có ai đã cập nhật PyCharm đến năm 2019 và có thể xác nhận điều này không? Tôi cũng đã cài đặt lại toàn bộ cài đặt QGIS, nhưng dường như không có gì hoạt động.

Có vẻ như các DLL chứa các sơ khai không tương thích bây giờ?

Con dơi của tôi để bắt đầu PyCharm trông như thế này:

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass-7.4.2\etc\env.bat
@echo off
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-7.4.2\lib
path %PATH%;%OSGEO4W_ROOT%\apps\Qt5\bin
path %PATH%;%OSGEO4W_ROOT%\apps\Python37\Scripts
path %PATH%;C:\Program Files\Docker\Docker\Resources\bin
path %PATH%;C:\Program Files\7-Zip

set QT_PLUGIN_PATH=C:\OSGeo4W64\apps\Qt5\plugins

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis-ltr\python\plugins
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37

start "PyCharm aware of Quantum GIS" /B "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exe" %*

Cho tôi xem *.battệp của bạn mà bạn sử dụng để chạy PyCharm, tương thích với QGIS.
Ông Che

C:\Program Files\JetBrains\PyCharm Community Edition 2018.2.2\bin\pycharm64.exechỉ vào PyCharm 2019 mới của bạn?
Ông Che

đúng vậy .. PyCharm đang bắt đầu, nhưng dường như không thể tải các DLL của qgis
TheGrudge

Tôi đã cố gắng đặt PYTHONHOME trong C: \ OSGeo4W64 \ etc \ ini \ python-core.bat thành C: \ OSGeo4W64 \ apps \ Python37, nhưng dường như không có gì hoạt động.
TheGrudge

Tôi đã từng có vấn đề như vậy với DLL, nhưng với các asynciothư viện bổ sung . Tôi thấy rằng tôi đã cài đặt các thư viện giống hệt nhau trong thư mục gốc C:\OSGeo4W64\libvà thư mục bên lib C:\OSGeo4W64\apps\Python37\lib. Sau khi gỡ bỏ cài đặt lib bên (sử dụng PyCharm), vấn đề đã được giải quyết. Nhưng vấn đề của bạn không giống nhau.
Ông Che

Câu trả lời:


2

Đã cập nhật

Tôi đã cài đặt lại Windows 10(xóa cài đặt), QGIS 3.10(xóa cài đặt OSGeo4W), PyCharm 2019.3.1 ( Community Edition Build #PC-193.5662.61, built on December 18, 2019) và tôi xác nhận rằng tôi không có lỗi trong khi thực hiện from qgis._core import *với PyCharm được khởi chạy với *.battệp như vậy :

@ECHO off

set OSGEO4W_ROOT=C:\OSGeo4W64

call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"

path %OSGEO4W_ROOT%\apps\qgis\bin;%PATH%
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

set GDAL_FILENAME_IS_UTF8=YES

set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins

SET PYCHARM="C:\Program Files\JetBrains\PyCharm Community Edition 2019.3.1\bin\pycharm64.exe"

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
set PYTHONPATH=%OSGEO4W_ROOT%\apps\Python37\lib\site-packages;%PYTHONPATH%

set QT_QPA_PLATFORM_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\Qt5\plugins\platforms
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

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

Tôi đã lấy tập tin bat của bạn và chỉ thay đổi đường dẫn đến pycharm, nhưng tiếc là nó không hoạt động. Tôi đã vô hiệu hóa bộ đệm một lần nữa và lập chỉ mục lại dự án, nhưng quá trình nhập dữ liệu QGIS không hoạt động (lỗi tải DLL tương tự)
TheGrudge

đây có thể là một vấn đề: bảng điều khiển PyDev: bắt đầu. Python 3.7.0 (v3.7.0: 1bf9cc5093, ngày 27 tháng 6 năm 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] trên win32 sys.pl platform 'win32' Tôi vừa thấy rằng giao diện điều khiển python dường như để nghĩ rằng nó đang chạy trên win32
TheGrudge

@ user782456 Đây là thông điệp khởi động python của tôi (giống như của bạn):PyDev console: starting. Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Ông Che

vâng Tôi đoán Python trong Windows không cho bạn biết kiến ​​trúc chính xác, dường như có các mô-đun khác có thể in thông tin chính xác. Dù sao, tôi đã cài đặt QGIS 3.4.6 với trình cài đặt mạng và PyCharm 2019 trên một máy mới và tôi vẫn không thể tải DLL. Vì vậy, nó dường như không phải là một vấn đề với cài đặt của tôi.
TheGrudge

@TheGrudge Bây giờ tôi không gặp vấn đề gì với PyCharm. Trả lời cập nhật.
Ông Che


1

Chỉnh sửa 1: Có vẻ chỉ là sự cố PyCharm 2019.1. Là một giải pháp tạm thời, tập lệnh khởi động hoạt động tốt với PyCharm 2018.3.6, có thể tải xuống từ https://www.jetbrains.com/pycharm/doad/preingly.html

Lỗi này cũng xảy ra với PyCharm Professional 2019.1, nhưng có thể nhập các mô-đun qgis từ một con trăn "bình thường" đã được bắt đầu với cùng một cài đặt môi trường / kịch bản khởi động như được mô tả ở trên:

set OSGEO4W_ROOT=C:\Program Files\QGIS 3.6
set PYCHARM="C:\Program Files\JetBrains\PyCharm 2019.1.1\bin\pycharm64.exe"
@ECHO off

call "%OSGEO4W_ROOT%\bin\o4w_env.bat"
call "%OSGEO4W_ROOT%\bin\qt5_env.bat"
call "%OSGEO4W_ROOT%\bin\py3_env.bat"

path %OSGEO4W_ROOT%\apps\qgis\bin;%PATH%
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

set GDAL_FILENAME_IS_UTF8=YES

set VSI_CACHE=TRUE
set VSI_CACHE_SIZE=1000000
set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins

set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37
set PYTHONPATH=%OSGEO4W_ROOT%\apps\Python37\lib\site-packages;%PYTHONPATH%

set QT_QPA_PLATFORM_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\Qt5\plugins\platforms
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

:: A python able to call "import qgis.core"
start python

:: A python unable to call "import qgis.core"
start "PyCharm unfortunatelley not-aware of QGIS" /B %PYCHARM% %*

1

Tôi đã xác minh vấn đề này. Hoạt động tốt trong PyCharm đến năm 2018.3.7, bị hỏng trong năm 2019.1.3. Các biến môi trường của tôi được thiết lập chính xác, vì tôi có thể truy cập các mô-đun python của QGIS thông qua dòng lệnh và các phiên bản trước đó của PyCharm khi khởi chạy chúng với cùng một tệp .bat.

Chắc chắn là một lỗi PyCharm. Những người dùng khác đã báo cáo các vấn đề tương tự .


Tôi trở lại PyCharm 2018.3.7, vì tôi không thể có được bất cứ điều gì làm việc trong gần 5 tháng. Bây giờ lỗi tải DLL đã biến mất, tôi có thể chạy lại các lệnh không kiểm soát và các lệnh khác trong PyCharm. Tôi không biết những gì họ đã thay đổi vào năm 2019.x, nhưng nó không gây ra gì ngoài vấn đề cho tôi.
TheGrudge

1

Điều này vẫn hoạt động với PyCharm> = 2019. Bạn có thể chỉ cần thay đổi trình thông dịch Python mà bạn tham chiếu trong dự án PyCharm của mình. Tôi sử dụng tệp .bat dưới đây để khởi động PyCharm, sau đó đặt trình thông dịch dự án để trỏ đến OSGEO4W_ROOT\bin\python-qgis.bat, python3.exetrong cùng thư mục cũng có thể hoạt động.

@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W64
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat

@echo off
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-7.6.0\lib
path %PATH%;C:\OSGeo4W64\apps\Qt5\bin
path %PATH%;C:\OSGeo4W64\apps\Python37\Scripts

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python
set PYTHONHOME=%OSGEO4W_ROOT%\apps\Python37

set PATH=C:\Program Files\Git\bin;%PATH%

start "PyCharm aware QGIS" /B "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.2\bin\pycharm64.exe" %*

0

Ngoài câu trả lời của Jonny và bình luận của TheGrudges về điều đó:

Nó vẫn chưa được sửa trong PyCharm 2019.2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.