cartopy インストールの問題記録

pip インストール cartopy で発生した問題を記録します。

すべての問題の原因: 公式は whl ファイルを提供しておらず、当時 https://www.lfd.uci.edu/~gohlke/pythonlibs/ Web サイトでエラーが発生しました。これが whl ファイルを提供する唯一のミラー Web サイトです(ただし、現在は復元されて使用できるようになりました)

この問題を解決するために、ソースコードからpyhtonライブラリをインストールする方法を学び直して、cartopyのソースコードをダウンロードし、自分でコンパイルしてwhlファイルを生成する準備をしましたが、多くの問題がありました。

主な問題は、cartopy がコンパイル時に 2 つのサードパーティ ライブラリ (geos と proj) に依存していることです。これら 2 つは C/C++ 言語ライブラリであるため、最初にこれら 2 つのライブラリをダウンロードしてコンパイルする必要があります。

C/C++ ライブラリをコンパイルする方法。幸いなことに、私には少しの基礎があります。私は cmake を使用して、危険を冒さずに geos ライブラリをコンパイルしました。しかし、proj ライブラリをコンパイルするときに問題が発生しました。コンパイルするとき、proj は
sqlite、tiff などに依存していました。ライブラリ (そうです、ライブラリが 2 つ以上あります)、すべての依存ライブラリをダウンロードしてコンパイルした後、環境を再度構成し、最後にプロジェクトをコンパイルしました。

cartopy の依存関係がすべてコンパイルされ、スムーズにインストールできると思いましたが、また問題が発生しました。コンパイルされた geos と proj が setup.py ファイルに見つかりませんでしたが、これは小さな問題です。 geos および proj ライブラリの場所を直接入力し、コード内で指定して、問題なく実行しますpython setup.py bdist-wheel
このとき、もう一つ大きなトリックを教えてもらいました。コンパイル時に vc++ コンパイラが見つかりませんでした。普段は mingw を使用しています。Python ライブラリをコンパイルするには、Visual Studio をインストールする必要があります。? ? それは絶対に無理なので調べたところ、setup.cfgに以下の2行を追加してmingwでコンパイルできることが分かりました。

[build_ext]
コンパイラ=mingw32

この時、コンパイルに問題があり、trace.cppに0による除算があったので変更したところ、無事コンパイルが完了し、cartopyのwhlファイルを取得できました。

しかし、問題は終わったわけではなく、cartopyをインストールしてサンプルで試してみると、DLLファイルが見つからず、一日解決できませんでした。もうやりたくないので、ベースマップを使用して最初にタスクを実行します。カルトピーの問題は後に脇に置かれた。

2週間後、またこの件を思い出し、数時間作業しましたが、やはりうまくいきません。https://www.lfd.uci.edu/~gohlke/pythonlibs/ というサイトが復旧していたのを偶然見つけたので、上からcartopyをダウンロードしたところ、サンプルを実行するとエラーが発生しました。 Shapely をアンインストールし、上記の Web サイトからダウンロードしたところ、最終的に問題は解決しました。

そのとき初めて、shapely が提供する geos_c.dll と pyproj が提供する proj.dll ファイルが自分でコンパイルされていないことがわかりました。また、これら 2 つは mingw でコンパイルされていないため、cartopy ルートのコンパイルの 2 つの依存関係が発生する可能性があります。自分で ライブラリに互換性はなく、そのWebサイトからダウンロードしたものはvc++コンパイラでコンパイルできる可能性があるので問題ありません。

ずっと悩んだ末、Webサイトからダウンロードしてようやく問題が解決しました(泣)

最後に、上記の Web サイトの問題を回避するために、これらのライブラリを Lanzoup クラウド ネットワーク ディスク https://ajream.lanzoup.com/i9KWk0zble7e に配置します。

おすすめ

転載: blog.csdn.net/m0_46079750/article/details/131255162