jbusecke / xmovie

A simple way of creating movies from xarray objects
https://xmovie.readthedocs.io/
MIT License
251 stars 38 forks source link

Conflicting dependencies when installing via pip (Cartopy) #87

Open mcucchi9 opened 2 years ago

mcucchi9 commented 2 years ago

Hi,

I'm trying to install xmovie via pip but I keep getting errors related to conflicting dependencies.

I tried both in a conda and in a venv environment, obtaining similar errors.

OS: Ubuntu 20.04.4 LTS

Edit

It looks like the issue is related to cartopy installation (see https://github.com/SciTools/cartopy/issues/1970, https://github.com/SciTools/cartopy/issues/1967, https://github.com/SciTools/cartopy/issues/1879).

conda environment

Steps to replicate

conda create -n xmovie python=3.9
conda activate xmovie
pip install xmovie

Output

Collecting xmovie
  Downloading xmovie-0.3.1-py3-none-any.whl (16 kB)
Collecting cartopy
  Downloading Cartopy-0.20.2.tar.gz (10.8 MB)
     |████████████████████████████████| 10.8 MB 2.8 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpyh7ycr95
       cwd: /tmp/pip-install-jftzwlvn/cartopy_022883b606944a7cb80fd22f18a95899
  Complete output (1 lines):
  Proj 8.0.0 must be installed in Conda environment "xmovie".
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/f6/55/1e1c737dc9436b320deead73d1c455ddbb74b8b6992081863492f6f6378a/Cartopy-0.20.2.tar.gz#sha256=4d08c198ecaa50a6a6b109d0f14c070e813defc046a83ac5d7ab494f85599e35 (from https://pypi.org/simple/cartopy/) (requires-python:>=3.7). Command errored out with exit status 1: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpyh7ycr95 Check the logs for full command output.
  Downloading Cartopy-0.20.1.tar.gz (10.8 MB)
     |████████████████████████████████| 10.8 MB 5.2 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpg5i65otv
       cwd: /tmp/pip-install-jftzwlvn/cartopy_0b710d11d63c42deb15d26cc3d5baa9d
  Complete output (1 lines):
  Proj 8.0.0 must be installed in Conda environment "xmovie".
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/fc/59/aa52698e3838f4cd0e7eaa75bd86837e9e0b05041dbdaee3cda2fffced06/Cartopy-0.20.1.tar.gz#sha256=91f87b130e2574547a20cd634498df97d797abd12dcfd0235bc0cdbcec8b05e3 (from https://pypi.org/simple/cartopy/) (requires-python:>=3.7). Command errored out with exit status 1: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpg5i65otv Check the logs for full command output.
  Downloading Cartopy-0.20.0.tar.gz (10.8 MB)
     |████████████████████████████████| 10.8 MB 3.9 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpr7vq8hbj
       cwd: /tmp/pip-install-jftzwlvn/cartopy_ecf5ec1eb01f4e31be2d208e195b4229
  Complete output (1 lines):
  Proj 8.0.0 must be installed in Conda environment "xmovie".
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/0f/c0/58453b036e79046d211f083880d58dcce787e7e07647ac25dc46c6555099/Cartopy-0.20.0.tar.gz#sha256=eae58aff26806e63cf115b2bce9477cedc4aa9f578c5e477b2c25cfa404f2b7a (from https://pypi.org/simple/cartopy/) (requires-python:>=3.7). Command errored out with exit status 1: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpr7vq8hbj Check the logs for full command output.
  Downloading Cartopy-0.19.0.post1.tar.gz (12.1 MB)
     |████████████████████████████████| 12.1 MB 5.1 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmppih05w_1
       cwd: /tmp/pip-install-jftzwlvn/cartopy_ed2db7cd006a4391ac0e7b943a09e9e0
  Complete output (1 lines):
  Proj 4.9.0 must be installed in Conda environment "xmovie".
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/ed/ca/524ce33692df3faeaa56852fb6a33b0b410be94cc288417565b96fef3f64/Cartopy-0.19.0.post1.tar.gz#sha256=4b8b4773a98ed7009fe17d9b6ec87ac3ac62b7d14634d7768c190eadc647d576 (from https://pypi.org/simple/cartopy/) (requires-python:>=3.5). Command errored out with exit status 1: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmppih05w_1 Check the logs for full command output.
  Downloading Cartopy-0.18.0.tar.gz (14.4 MB)
     |████████████████████████████████| 14.4 MB 6.1 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_b36d305f069f46bd81a348e776213f2d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_b36d305f069f46bd81a348e776213f2d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-h561j9wc
         cwd: /tmp/pip-install-jftzwlvn/cartopy_b36d305f069f46bd81a348e776213f2d/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_b36d305f069f46bd81a348e776213f2d/setup.py", line 43, in <module>
        import numpy as np
    ModuleNotFoundError: No module named 'numpy'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_b36d305f069f46bd81a348e776213f2d/setup.py", line 45, in <module>
        raise ImportError('NumPy 1.10+ is required to install cartopy.')
    ImportError: NumPy 1.10+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/46/c1/04e50c9986842f00f7db0e7a65caa896840050d7328f74e5b7437aa01179/Cartopy-0.18.0.tar.gz#sha256=7ffa317e8f8011e0d965a3ef1179e57a049f77019867ed677d49dcc5c0744434 (from https://pypi.org/simple/cartopy/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.17.0.tar.gz (8.9 MB)
     |████████████████████████████████| 8.9 MB 11.7 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpfmorpaar
       cwd: /tmp/pip-install-jftzwlvn/cartopy_7af50acaf90c4d25a60ab63417d02bf1
  Complete output (1 lines):
  Proj 4.9.0 must be installed in Conda environment "xmovie".
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e5/92/fe8838fa8158931906dfc4f16c5c1436b3dd2daf83592645b179581403ad/Cartopy-0.17.0.tar.gz#sha256=424bd9e9ddef6e48cbdee694ce589ec431be8591f15b6cb93cb2b333a29b2c61 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: /home/marco/miniconda3/envs/xmovie/bin/python /home/marco/miniconda3/envs/xmovie/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmpfmorpaar Check the logs for full command output.
  Downloading Cartopy-0.16.0.tar.gz (8.8 MB)
     |████████████████████████████████| 8.8 MB 10.7 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_fb1682f06dfb42ad91604638d2fd8886/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_fb1682f06dfb42ad91604638d2fd8886/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-waynz20x
         cwd: /tmp/pip-install-jftzwlvn/cartopy_fb1682f06dfb42ad91604638d2fd8886/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_fb1682f06dfb42ad91604638d2fd8886/setup.py", line 47, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_fb1682f06dfb42ad91604638d2fd8886/setup.py", line 49, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/f5/7a/4a16db7c81f11b3c5889c5b913d9a5724c704a6947c5a87ec59c4a8985ac/Cartopy-0.16.0.tar.gz#sha256=f23dffa101f43dd91e866a49ebb5f5048be2a24ab8a921a5c07edabde746d9a4 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.15.1.tar.gz (8.2 MB)
     |████████████████████████████████| 8.2 MB 7.6 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_4c0d4be2c72c4e3090c2604b5e964812/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_4c0d4be2c72c4e3090c2604b5e964812/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-jjt783du
         cwd: /tmp/pip-install-jftzwlvn/cartopy_4c0d4be2c72c4e3090c2604b5e964812/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_4c0d4be2c72c4e3090c2604b5e964812/setup.py", line 45, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_4c0d4be2c72c4e3090c2604b5e964812/setup.py", line 47, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/ee/6c/992e03af5a93c1b81d644a3fa0b0c43c4f8ccc9bc69837de46490f8dc3da/Cartopy-0.15.1.tar.gz#sha256=bb8a084055c38bc895b2fe094262753813e6fc7221ef2c1fc87ec1ff302f3c09 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.14.2.tar.gz (8.4 MB)
     |████████████████████████████████| 8.4 MB 12.1 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_4211bd1b0e064bdea691e980da2d16d2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_4211bd1b0e064bdea691e980da2d16d2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-9dqjl8b2
         cwd: /tmp/pip-install-jftzwlvn/cartopy_4211bd1b0e064bdea691e980da2d16d2/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_4211bd1b0e064bdea691e980da2d16d2/setup.py", line 45, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_4211bd1b0e064bdea691e980da2d16d2/setup.py", line 47, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/00/30/be768605774919e7571b72520b332f61fd307490923283292836872cb7a1/Cartopy-0.14.2.tar.gz#sha256=a7059587b91989ac42649f3d02aefbb4d3fd53ebb10ada34c007235820a000e7 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.14.0.tar.gz (8.4 MB)
     |████████████████████████████████| 8.4 MB 6.6 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_51d4f62dc5fe435bb4862007fcca4435/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_51d4f62dc5fe435bb4862007fcca4435/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-w4try15u
         cwd: /tmp/pip-install-jftzwlvn/cartopy_51d4f62dc5fe435bb4862007fcca4435/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_51d4f62dc5fe435bb4862007fcca4435/setup.py", line 45, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_51d4f62dc5fe435bb4862007fcca4435/setup.py", line 47, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/ec/31/22528383a32ae03e31cee883173db7a5bcaa9452b0eeb94d6fd2cfa0fbde/Cartopy-0.14.0.tar.gz#sha256=2a3d26cb9c3af237209f9b3a3b0f50920dad9ab5ac4def0c468004c02f725df8 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.13.1.tar.gz (7.7 MB)
     |████████████████████████████████| 7.7 MB 8.9 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_9d8bccf4541a42f88087c9f0403a71ff/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_9d8bccf4541a42f88087c9f0403a71ff/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-5eli2nf7
         cwd: /tmp/pip-install-jftzwlvn/cartopy_9d8bccf4541a42f88087c9f0403a71ff/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_9d8bccf4541a42f88087c9f0403a71ff/setup.py", line 39, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_9d8bccf4541a42f88087c9f0403a71ff/setup.py", line 41, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/57/42/ceb8bc7120998fcbeab9563f947ec3f334a0585afda6273a60e94e8d0792/Cartopy-0.13.1.tar.gz#sha256=779a75cd4a5553489cd71e4506685247d6ac94017a7979a50d09306b43e8d7ff (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.13.0.tar.gz (7.7 MB)
     |████████████████████████████████| 7.7 MB 11.8 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_d5983b2bad8046aa8d3617b83221161c/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_d5983b2bad8046aa8d3617b83221161c/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-av96o8ip
         cwd: /tmp/pip-install-jftzwlvn/cartopy_d5983b2bad8046aa8d3617b83221161c/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_d5983b2bad8046aa8d3617b83221161c/setup.py", line 36, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_d5983b2bad8046aa8d3617b83221161c/setup.py", line 38, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/32/81/8da9f2307971b5ae0c2e32763267814a91dcb3f0762432befcf37df7d16d/Cartopy-0.13.0.tar.gz#sha256=e8301460c5b5f9e57fa8de91772cfdf0360a04bbcd77ab102c3e678ad81a5474 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.12.0.5.tar.gz (7.7 MB)
     |████████████████████████████████| 7.7 MB 13.5 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_815cc4fbab3d41abb009db8a22798fa5/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_815cc4fbab3d41abb009db8a22798fa5/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-2y0obu65
         cwd: /tmp/pip-install-jftzwlvn/cartopy_815cc4fbab3d41abb009db8a22798fa5/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_815cc4fbab3d41abb009db8a22798fa5/setup.py", line 36, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_815cc4fbab3d41abb009db8a22798fa5/setup.py", line 38, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/9a/b1/9723f24ddc542b14c86e233a93fdc2c1cf424c57b526160eeb45f454edc4/Cartopy-0.12.0.5.tar.gz#sha256=2c19a14f788fda4b6648995de3b38e02fc4fe46ee0156d01ddacfb32594a980c (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading Cartopy-0.12.0.4.tar.gz (7.7 MB)
     |████████████████████████████████| 7.7 MB 11.0 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_c8190abac5a147418fb338fc32ffd67f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_c8190abac5a147418fb338fc32ffd67f/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-xsrbg16a
         cwd: /tmp/pip-install-jftzwlvn/cartopy_c8190abac5a147418fb338fc32ffd67f/
    Complete output (12 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-jftzwlvn/cartopy_c8190abac5a147418fb338fc32ffd67f/setup.py", line 36, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_c8190abac5a147418fb338fc32ffd67f/setup.py", line 38, in <module>
        raise ImportError('Cython 0.15.1+ is required to install cartopy.')
    ImportError: Cython 0.15.1+ is required to install cartopy.
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/6c/fa/e4c45bd9c78e43f78d30b8d5e6fb884c045b017af51499f0b919ed8ce72c/Cartopy-0.12.0.4.tar.gz#sha256=f2796874bd1d8abf6b65324acd38f15f731a4ad1b0e9a806bf14036c946c4c87 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading cartopy-0.11.0.tar.gz (7.7 MB)
     |████████████████████████████████| 7.7 MB 15.4 MB/s 
    ERROR: Command errored out with exit status 1:
     command: /home/marco/miniconda3/envs/xmovie/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jftzwlvn/cartopy_61ca025ae33f46699d872c91a9a1d639/setup.py'"'"'; __file__='"'"'/tmp/pip-install-jftzwlvn/cartopy_61ca025ae33f46699d872c91a9a1d639/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-otavnb_v
         cwd: /tmp/pip-install-jftzwlvn/cartopy_61ca025ae33f46699d872c91a9a1d639/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-jftzwlvn/cartopy_61ca025ae33f46699d872c91a9a1d639/setup.py", line 31, in <module>
        from Cython.Distutils import build_ext
    ModuleNotFoundError: No module named 'Cython'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/1b/8e/ee4545577e897d0e45ee136513a28688abcb0dc4f26f9132177ec627c7ce/cartopy-0.11.0.tar.gz#sha256=85eb55d6ce16be5f7e745fcc2870b3fa7450db3a77899daade8b18711532be45 (from https://pypi.org/simple/cartopy/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Collecting xmovie
  Downloading xmovie-0.3.0-py3-none-any.whl (16 kB)
  Downloading xmovie-0.2.2-py3-none-any.whl (15 kB)
  Downloading xmovie-0.1.0-py3-none-any.whl (10 kB)
ERROR: Cannot install xmovie==0.1.0, xmovie==0.2.2, xmovie==0.3.0 and xmovie==0.3.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    xmovie 0.3.1 depends on cartopy
    xmovie 0.3.0 depends on cartopy
    xmovie 0.2.2 depends on cartopy
    xmovie 0.1.0 depends on cartopy

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

venv environment

Steps to replicate

python3 -m venv venv
source venv/bin/activate
pip install xmovie

Output

Collecting xmovie
  Downloading xmovie-0.3.1-py3-none-any.whl (16 kB)
Collecting cartopy
  Downloading Cartopy-0.20.2.tar.gz (10.8 MB)
     |████████████████████████████████| 10.8 MB 2.8 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/marco/devel/xmovie/venv/bin/python3 /tmp/tmpi_7i_f9w get_requires_for_build_wheel /tmp/tmp_evocsxc
       cwd: /tmp/pip-install-g5htevtl/cartopy
  Complete output (1 lines):
  Proj version 6.3.1 is installed, but cartopy requires at least version 8.0.0.
  ----------------------------------------
ERROR: Command errored out with exit status 1: /home/marco/devel/xmovie/venv/bin/python3 /tmp/tmpi_7i_f9w get_requires_for_build_wheel /tmp/tmp_evocsxc Check the logs for full command output.
mcucchi9 commented 2 years ago

Fix

conda environment

Install proj from conda-forge prior installing xmovie:

conda create -n xmovie python=3.9
conda activate xmovie
conda install -c conda-forge proj
pip install xmovie

venv environment

Install version cartopy==0.19.0.post1 before installing xmovie (see https://github.com/SciTools/iris/issues/4468#issuecomment-997997068)

python3 -m venv venv
source venv/bin/activate
pip install cartopy==0.19.0.post1
pip install xmovie
jbusecke commented 2 years ago

Thanks for reporting this problem @mcucchi9. This is certainly frustrating. Does a conda only install e.g. conda create -n xmovie python=3.9 xmovie work for you? I have had some issues with cartopy dependencies via pip in other contexts lately. I am however not quite sure how to fix this. If the above works, I could add appropriate warnings to the readme/docs, but it would be nice to find a more elegant solution for this.

mcucchi9 commented 2 years ago

Hi @jbusecke. Yes, a pure conda installation works fine, even when cartopy=0.20 is installed (which looks like being the source of the reported issue with pip). The following command correctly installs xmovie with cartopy=0.20.2 and proj=9.0.0:

conda create --override-channels -c anaconda -c conda-forge -n xmovie python=3.9 xmovie
ashwinvis commented 2 years ago

Would it be possible to make cartopy as an optional dependency?

Context: We use xarray in the library pymech and snek5000 and we would like to try out xmovie (https://github.com/snek5000/snek5000/issues/118). We do not foresee the use of cartopy in those packages and IIRC, it can be notoriously difficult to install without conda.