3

Django プロジェクトに GeoDjango をインストールしようとしていますが、GDAL で奇妙なエラーが発生しました。

Djangoのドキュメントに従って、OSGeo4W64を使用してGDAL、GEOS、PROJをインストールしました。具体的には、これらはOSGeo4W64セットアップでインストールするために選択したパッケージです。

  • gdal v2.3.2-2
  • geos v3.7.0-1
  • proj v5.2.0-1

また、文書化されているように環境変数を設定しました。


私が得たエラー

最初に Django プロジェクトを (を使用して) 開始したとき、Python はEntry Point Not Found というエラーrunserverを探して発生させようとしました:gdal202.dll

プロシージャ エントリ ポイント sqlite3_column_origin_name がダイナミック リンク ライブラリに見つかりませんでした...\osgeo4w64\bin\gdal202.dll

もう 1 つのエラーOrdinal Not Found with libcurl.dll (依存関係として OSGeo4W によってインストールされます):

序数 361 がダイナミック リンク ライブラリ ..\osgeo4w64\bin\libcurl.dll に見つかりませんでした

およびpythonが発生したエラー:

[WinError 182] オペレーティング システムは %1 を実行できません


私がしたこと

gdalバージョンをダウングレードして最初のエラーを修正しましgdal201.dllたが、2番目のエラーを解決する方法がわかりません。

libcurl の最新の Windows バイナリ バージョンをダウンロードして置き換えようとしましたが、Python によって別のエラーが発生しました。

[WinError 126] 指定されたモジュールが見つかりませんでした

また、curl バイナリのアーキテクチャが x64 であることも確認しました (私の python と OSGeo4W と同じです)。

誰かが助けてくれることを願っています、どうもありがとう。

4

1 に答える 1

2

Django と PyCharm を使用する Windows では、以下で説明するように、以前のものと同じエラーを受け取り始めました。

プロシージャ エントリ ポイント sqlite3_column_origin_name がダイナミック リンク ライブラリ C:\Program Files\GDAL\gdal203.dll に見つかりませんでした

私のために働いた短編小説の解決策

名前を変更: "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\DLLs\sqlite3.dll" を sqlite3.dll.bak に変更

これを解決するために2つのツールを使用しました

修正に使用する手順

  1. 依存関係を使用して gdal203.dll をロードし、sqlite3_column_origin_name に使用されている DLL を探します
  2. Process Explorer を使用して、メモリにロードされている sqlite3.dll を特定しました (DLL 地獄へようこそ)。私の場合、「C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\DLLs」にありました
  3. 依存関係を使用して、Visual Studio から sqlite3.dll を調べました
  4. PyCharm を終了し、Visual Studio DLL の名前を sqlite3.dll.bak に変更して、PATH 順序に従って強制的にロードするようにしました。これを行うことで、私が意図せずに他に何を壊したかは誰にもわかりません。将来の私はこれで私を嫌うかもしれません。

Windows 10 の新規インストールから始めて、続いて PyCharm、Django、GeoDjango をインストールします...私の経験では、実質的なトラブルシューティングを行わないと機能しません。一部はDLL地獄から、一部はデバッガーでフックするために使用されたPyCharmのrunnerw64.exeが原因だと思います。

于 2020-05-11T22:33:30.560 に答える