Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot install with python 3.11 #148

Closed
geospatial-jeff opened this issue Nov 25, 2022 · 2 comments
Closed

Cannot install with python 3.11 #148

geospatial-jeff opened this issue Nov 25, 2022 · 2 comments

Comments

@geospatial-jeff
Copy link

geospatial-jeff commented Nov 25, 2022

Currently pypgstac cannot be installed with python 3.11. Discovered while adding support for 3.11 to stac-fastapi in stac-utils/stac-fastapi#500.

Steps to reproduce (using conda):

> conda create -n py311 python=3.11
> conda activate py311

# This is the install used by stac-fastapi
> pip install "pypgstac[psycopg]==0.6.*"


Collecting pypgstac[psycopg]==0.6.*
  Using cached pypgstac-0.6.10-py3-none-any.whl (625 kB)
Collecting smart-open==4.2.*
  Using cached smart_open-4.2.0.tar.gz (119 kB)
  Preparing metadata (setup.py) ... done
Collecting orjson>=3.5.2
  Using cached orjson-3.8.2-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (493 kB)
Collecting python-dateutil==2.8.*
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting fire==0.4.*
  Using cached fire-0.4.0.tar.gz (87 kB)
  Preparing metadata (setup.py) ... done
Collecting plpygis==0.2.*
  Using cached plpygis-0.2.0.tar.gz (45 kB)
  Preparing metadata (setup.py) ... done
Collecting pydantic[dotenv]==1.9.*
  Using cached pydantic-1.9.2-py3-none-any.whl (143 kB)
Collecting tenacity==8.0.*
  Using cached tenacity-8.0.1-py3-none-any.whl (24 kB)
Collecting psycopg[binary]==3.0.*
  Using cached psycopg-3.0.18-py3-none-any.whl (143 kB)
Collecting psycopg-pool==3.1.*
  Using cached psycopg_pool-3.1.4-py3-none-any.whl (28 kB)
Collecting six
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting termcolor
  Using cached termcolor-2.1.1-py3-none-any.whl (6.2 kB)
Collecting psycopg[binary]==3.0.*
  Using cached psycopg-3.0.17-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.16-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.15-py3-none-any.whl (144 kB)
  Using cached psycopg-3.0.14-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.13-py3-none-any.whl (142 kB)
  Using cached psycopg-3.0.12-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.11-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.10-py3-none-any.whl (142 kB)
  Using cached psycopg-3.0.9-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.8-py3-none-any.whl (142 kB)
  Using cached psycopg-3.0.7-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.6-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.5-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.4-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0.3-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0.2-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0.1-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0-py3-none-any.whl (140 kB)
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of psycopg-pool to determine which version is compatible with other requirements. This could take a while.
Collecting psycopg-pool==3.1.*
  Using cached psycopg_pool-3.1.3-py3-none-any.whl (28 kB)
INFO: pip is looking at multiple versions of plpygis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of fire to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pypgstac[psycopg] to determine which version is compatible with other requirements. This could take a while.
Collecting pypgstac[psycopg]==0.6.*
  Using cached pypgstac-0.6.9-py3-none-any.whl (603 kB)
  Using cached pypgstac-0.6.8-py3-none-any.whl (580 kB)
  Using cached pypgstac-0.6.7-py3-none-any.whl (557 kB)
  Using cached pypgstac-0.6.6-py3-none-any.whl (535 kB)
  Using cached pypgstac-0.6.5-py3-none-any.whl (513 kB)
  Using cached pypgstac-0.6.4-py3-none-any.whl (491 kB)
  Using cached pypgstac-0.6.3-py3-none-any.whl (470 kB)
INFO: pip is looking at multiple versions of pypgstac[psycopg] to determine which version is compatible with other requirements. This could take a while.
  Using cached pypgstac-0.6.2-py3-none-any.whl (449 kB)
  Using cached pypgstac-0.6.1-py3-none-any.whl (430 kB)
  Using cached pypgstac-0.6.0-py3-none-any.whl (410 kB)
ERROR: Cannot install psycopg[binary]==3.0, psycopg[binary]==3.0.1, psycopg[binary]==3.0.10, psycopg[binary]==3.0.11, psycopg[binary]==3.0.12, psycopg[binary]==3.0.13, psycopg[binary]==3.0.14, psycopg[binary]==3.0.15, psycopg[binary]==3.0.16, psycopg[binary]==3.0.17, psycopg[binary]==3.0.18, psycopg[binary]==3.0.2, psycopg[binary]==3.0.3, psycopg[binary]==3.0.4, psycopg[binary]==3.0.5, psycopg[binary]==3.0.6, psycopg[binary]==3.0.7, psycopg[binary]==3.0.8 and psycopg[binary]==3.0.9 because these package versions have conflicting dependencies.

The conflict is caused by:
    psycopg[binary] 3.0.18 depends on psycopg-binary==3.0.18; extra == "binary"
    psycopg[binary] 3.0.17 depends on psycopg-binary==3.0.17; extra == "binary"
    psycopg[binary] 3.0.16 depends on psycopg-binary==3.0.16; extra == "binary"
    psycopg[binary] 3.0.15 depends on psycopg-binary==3.0.15; extra == "binary"
    psycopg[binary] 3.0.14 depends on psycopg-binary==3.0.14; extra == "binary"
    psycopg[binary] 3.0.13 depends on psycopg-binary==3.0.13; extra == "binary"
    psycopg[binary] 3.0.12 depends on psycopg-binary==3.0.12; extra == "binary"
    psycopg[binary] 3.0.11 depends on psycopg-binary==3.0.11; extra == "binary"
    psycopg[binary] 3.0.10 depends on psycopg-binary==3.0.10; extra == "binary"
    psycopg[binary] 3.0.9 depends on psycopg-binary==3.0.9; extra == "binary"
    psycopg[binary] 3.0.8 depends on psycopg-binary==3.0.8; extra == "binary"
    psycopg[binary] 3.0.7 depends on psycopg-binary==3.0.7; extra == "binary"
    psycopg[binary] 3.0.6 depends on psycopg-binary==3.0.6; extra == "binary"
    psycopg[binary] 3.0.5 depends on psycopg-binary==3.0.5; extra == "binary"
    psycopg[binary] 3.0.4 depends on psycopg-binary==3.0.4; extra == "binary"
    psycopg[binary] 3.0.3 depends on psycopg-binary==3.0.3; extra == "binary"
    psycopg[binary] 3.0.2 depends on psycopg-binary==3.0.2; extra == "binary"
    psycopg[binary] 3.0.1 depends on psycopg-binary==3.0.1; extra == "binary"
    psycopg[binary] 3.0 depends on psycopg-binary==3.0; extra == "binary"

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/topics/dependency-resolution/#dealing-with-dependency-conflicts

Trying a pinned version:

> pip install "pypgstac[psycopg]==0.6.10"

Collecting pypgstac[psycopg]==0.6.10
  Using cached pypgstac-0.6.10-py3-none-any.whl (625 kB)
Collecting smart-open==4.2.*
  Using cached smart_open-4.2.0.tar.gz (119 kB)
  Preparing metadata (setup.py) ... done
Collecting orjson>=3.5.2
  Using cached orjson-3.8.2-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (493 kB)
Collecting python-dateutil==2.8.*
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting fire==0.4.*
  Using cached fire-0.4.0.tar.gz (87 kB)
  Preparing metadata (setup.py) ... done
Collecting plpygis==0.2.*
  Using cached plpygis-0.2.0.tar.gz (45 kB)
  Preparing metadata (setup.py) ... done
Collecting pydantic[dotenv]==1.9.*
  Using cached pydantic-1.9.2-py3-none-any.whl (143 kB)
Collecting tenacity==8.0.*
  Using cached tenacity-8.0.1-py3-none-any.whl (24 kB)
Collecting psycopg[binary]==3.0.*
  Using cached psycopg-3.0.18-py3-none-any.whl (143 kB)
Collecting psycopg-pool==3.1.*
  Using cached psycopg_pool-3.1.4-py3-none-any.whl (28 kB)
Collecting six
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting termcolor
  Using cached termcolor-2.1.1-py3-none-any.whl (6.2 kB)
Collecting psycopg[binary]==3.0.*
  Using cached psycopg-3.0.17-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.16-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.15-py3-none-any.whl (144 kB)
  Using cached psycopg-3.0.14-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.13-py3-none-any.whl (142 kB)
  Using cached psycopg-3.0.12-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.11-py3-none-any.whl (143 kB)
  Using cached psycopg-3.0.10-py3-none-any.whl (142 kB)
  Using cached psycopg-3.0.9-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.8-py3-none-any.whl (142 kB)
  Using cached psycopg-3.0.7-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.6-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.5-py3-none-any.whl (141 kB)
  Using cached psycopg-3.0.4-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0.3-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0.2-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0.1-py3-none-any.whl (140 kB)
  Using cached psycopg-3.0-py3-none-any.whl (140 kB)
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of psycopg-pool to determine which version is compatible with other requirements. This could take a while.
Collecting psycopg-pool==3.1.*
  Using cached psycopg_pool-3.1.3-py3-none-any.whl (28 kB)
INFO: pip is looking at multiple versions of plpygis to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of fire to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of pypgstac[psycopg] to determine which version is compatible with other requirements. This could take a while.
ERROR: Cannot install psycopg[binary]==3.0, psycopg[binary]==3.0.1, psycopg[binary]==3.0.10, psycopg[binary]==3.0.11, psycopg[binary]==3.0.12, psycopg[binary]==3.0.13, psycopg[binary]==3.0.14, psycopg[binary]==3.0.15, psycopg[binary]==3.0.16, psycopg[binary]==3.0.17, psycopg[binary]==3.0.18, psycopg[binary]==3.0.2, psycopg[binary]==3.0.3, psycopg[binary]==3.0.4, psycopg[binary]==3.0.5, psycopg[binary]==3.0.6, psycopg[binary]==3.0.7, psycopg[binary]==3.0.8 and psycopg[binary]==3.0.9 because these package versions have conflicting dependencies.

The conflict is caused by:
    psycopg[binary] 3.0.18 depends on psycopg-binary==3.0.18; extra == "binary"
    psycopg[binary] 3.0.17 depends on psycopg-binary==3.0.17; extra == "binary"
    psycopg[binary] 3.0.16 depends on psycopg-binary==3.0.16; extra == "binary"
    psycopg[binary] 3.0.15 depends on psycopg-binary==3.0.15; extra == "binary"
    psycopg[binary] 3.0.14 depends on psycopg-binary==3.0.14; extra == "binary"
    psycopg[binary] 3.0.13 depends on psycopg-binary==3.0.13; extra == "binary"
    psycopg[binary] 3.0.12 depends on psycopg-binary==3.0.12; extra == "binary"
    psycopg[binary] 3.0.11 depends on psycopg-binary==3.0.11; extra == "binary"
    psycopg[binary] 3.0.10 depends on psycopg-binary==3.0.10; extra == "binary"
    psycopg[binary] 3.0.9 depends on psycopg-binary==3.0.9; extra == "binary"
    psycopg[binary] 3.0.8 depends on psycopg-binary==3.0.8; extra == "binary"
    psycopg[binary] 3.0.7 depends on psycopg-binary==3.0.7; extra == "binary"
    psycopg[binary] 3.0.6 depends on psycopg-binary==3.0.6; extra == "binary"
    psycopg[binary] 3.0.5 depends on psycopg-binary==3.0.5; extra == "binary"
    psycopg[binary] 3.0.4 depends on psycopg-binary==3.0.4; extra == "binary"
    psycopg[binary] 3.0.3 depends on psycopg-binary==3.0.3; extra == "binary"
    psycopg[binary] 3.0.2 depends on psycopg-binary==3.0.2; extra == "binary"
    psycopg[binary] 3.0.1 depends on psycopg-binary==3.0.1; extra == "binary"
    psycopg[binary] 3.0 depends on psycopg-binary==3.0; extra == "binary"

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/topics/dependency-resolution/#dealing-with-dependency-conflicts

Without the psycopg extra it works:

> pip install "pypgstac==0.6.10"

Collecting pypgstac==0.6.10
  Using cached pypgstac-0.6.10-py3-none-any.whl (625 kB)
Collecting smart-open==4.2.*
  Using cached smart_open-4.2.0.tar.gz (119 kB)
  Preparing metadata (setup.py) ... done
Collecting orjson>=3.5.2
  Using cached orjson-3.8.2-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (493 kB)
Collecting python-dateutil==2.8.*
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting fire==0.4.*
  Using cached fire-0.4.0.tar.gz (87 kB)
  Preparing metadata (setup.py) ... done
Collecting plpygis==0.2.*
  Using cached plpygis-0.2.0.tar.gz (45 kB)
  Preparing metadata (setup.py) ... done
Collecting pydantic[dotenv]==1.9.*
  Using cached pydantic-1.9.2-py3-none-any.whl (143 kB)
Collecting tenacity==8.0.*
  Using cached tenacity-8.0.1-py3-none-any.whl (24 kB)
Collecting six
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting termcolor
  Using cached termcolor-2.1.1-py3-none-any.whl (6.2 kB)
Collecting typing-extensions>=3.7.4.3
  Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting python-dotenv>=0.10.4
  Using cached python_dotenv-0.21.0-py3-none-any.whl (18 kB)
Building wheels for collected packages: fire, plpygis, smart-open
  Building wheel for fire (setup.py) ... done
  Created wheel for fire: filename=fire-0.4.0-py2.py3-none-any.whl size=115927 sha256=8478bf7131e32e801c1dcf7e6d12e8e7b1e40a6fa535f40ee7121333aeb7e898
  Stored in directory: /Users/jeff/Library/Caches/pip/wheels/b4/40/e7/491f11d209b06d81dea7470bc464ca2eb19cc78d1076a522ca
  Building wheel for plpygis (setup.py) ... done
  Created wheel for plpygis: filename=plpygis-0.2.0-py3-none-any.whl size=68431 sha256=a651654e8621b6f9a4ec6ca5ca0aea031a8a0c9e283ebc775a5690b9b976e915
  Stored in directory: /Users/jeff/Library/Caches/pip/wheels/98/4b/c8/b4b52ee3bde60e1849cfd24016b2b38d215fb6716dcc28b3fc
  Building wheel for smart-open (setup.py) ... done
  Created wheel for smart-open: filename=smart_open-4.2.0-py3-none-any.whl size=109640 sha256=0a244d97e7f6b249c32e563935c9d0a2141d34388a81c025e23308f5ae6b072a
  Stored in directory: /Users/jeff/Library/Caches/pip/wheels/39/b3/bb/8dcf39626f5d7e7eb9092523557a910c78220407f3494a6bb3
Successfully built fire plpygis smart-open
Installing collected packages: plpygis, typing-extensions, termcolor, tenacity, smart-open, six, python-dotenv, orjson, python-dateutil, pydantic, fire, pypgstac
Successfully installed fire-0.4.0 orjson-3.8.2 plpygis-0.2.0 pydantic-1.9.2 pypgstac-0.6.10 python-dateutil-2.8.2 python-dotenv-0.21.0 six-1.16.0 smart-open-4.2.0 tenacity-8.0.1 termcolor-2.1.1 typing-extensions-4.4.0

Note it appears that psycopg2==2.9.5 added support for 3.11 (https://www.psycopg.org/docs/news.html#what-s-new-in-psycopg-2-9-5), but maybe psycopg doesn't support this yet?

@vincentsarago
Copy link
Member

https://github.com/stac-utils/pgstac/blob/main/pypgstac/setup.py#L28

This is because of ☝️, we need to update this to "psycopg[binary]==3.1.*",

@vincentsarago
Copy link
Member

should be fixed by #142

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants