[英]Not Able to Install Geopandas library using docker
我想用 airflow 構建一個 Docker 容器。該應用程序需要像 Geopandas 這樣的地理空間包。 當嘗試構建 Docker 圖像時,它在嘗試安裝 Fiona 時失敗,它說“
FileNotFoundError: [Errno 2] No such file or directory: 'gdal-config': 'gdal-config'
. 我不知道如何進一步進行。 因為我沒有在產品環境中安裝 conda,所以我只需要使用 pip 安裝 geopanda。
下面是docker文件部分:
COPY requirements.txt .
RUN pip install --user -r requirements.txt
下面是requirements.txt
apache-airflow[crypto,celery,postgres,jdbc,mysql,s3,password]==1.10.12
werkzeug<1.0.0
pytz
pyOpenSSL
ndg-httpsclient
gspread
oauth2client
pyasn1
boto3
airtable
numpy
scipy
slackclient
area
google-api-python-client
sqlalchemy
pandas
celery[redis]==4.1.1
analytics-python
networkx
zenpy==2.0.22
pyarrow
google-auth
six==1.13.0
geopandas
我嘗試在 requirements.txt 中單獨安裝所需的 package 以及同樣失敗並出現相同錯誤的 GDAL。 我想運行一個使用在 docker 上運行的 geopandas 庫的 DAG
將軟件包安裝到 docker 環境時,除了可能加快構建速度的願望外,與任何其他本地環境沒有什么不同。 因此,我將回答這個問題以突出顯示一個更快的選項,但與安裝 geopandas 有關的任何其他問題都與此相關。
我會仔細閱讀 geopandas安裝指南。 它包含有關您所面臨問題的多個警告。 安裝 geopandas 的推薦方法是使用 conda。 如果不手動安裝依賴項,則無法使用 pip 安裝 geopandas,其中一些依賴項無法使用 pip 安裝。因此,您可以這樣做,但只需調用pip install geopandas
將無法讓您到達那里。
我建議使用miniforge ,或者特別是因為你正在構建一個 docker 容器, mambaforge ,它的編譯速度更快。 mamba
是為並行構建環境而編寫的 conda 的替代品,速度明顯更快,但往往會因更糟糕的錯誤消息而更嚴重地崩潰。 在我看來,使用 docker 容器絕對值得加速,但如果你正在努力調試某些東西,你總是可以回退到conda
,它隨mamba
一起安裝。
不要安裝Anaconda
,它包括conda
以及從捆綁到您的base
環境的defaults
通道安裝的大量軟件包,因為它會導致通道混合和匹配。 一般來說,你應該保持你的基礎環境干凈,沒有任何包,除了那些自己明確管理通道的包,例如 IDE。相反,通過使用miniforge
或mambaforge
,你將默認使用 conda conda-forge
forge 通道。
安裝 mambaforge 然后創建一個新的 geopandas 環境:
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
bash Mambaforge-$(uname)-$(uname -m).sh
# install whatever env you'd like here. try to build it in one command
# rather than iteratively installing dependencies
mamba create -n mynewenv -c conda-forge python=3.10 geopandas [other packages]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.