Hi, I have a dude, the singer-sdk library says it ...
# contributing
m
Hi, I have a dude, the singer-sdk library says it runs on python 3.10, but it depends on pipelinewise-singer-python = "1.2.0" and this library does not run on python 3.10 because this library depends on ciso8601 and this one does not run on python 3.10. I tried install singer-sdk in python 3.10.5
c
I'm using the sdk on 3.10.5 without issues on Linux. What OS are you using?
m
Oh, sorry, I use ubuntu on WSL, when I run the
poetry install
I get an error because ciso8601 doesn't support python 3.10, in the ciso8601 docs say that and singer-sdk library depends of ciso8601 .
e
Hey @michael_lan, what’s the error message you’re seeing?
ciso8601
does seem to be compatible with Python 3.10, but the maintainers of the package don’t publish any binary wheels so it has to built on every system and so the build tool-chain has to be installed in your system. In the case of linux that means python3-dev, etc. Also, we’re looking to remove that (transitive) dependency in the near term 🙂.
m
When I use python 3.9 with poetry all work, but with python 3.10 the error is:
Copy code
EnvCommandError

  Command ['/home/michaellan/.cache/pypoetry/virtualenvs/tap-s3-h0qP_m2Y-py3.10/bin/pip', 'install', '--no-deps', 'file:///home/
michaellan/.cache/pypoetry/artifacts/a5/5f/9d/f4a1b29df9922fc3a755741d94f5a94743e64cabe27c3d5642c28d6ad5/ciso8601-2.2.0.tar.gz']
 errored with the following return code 1, and output: 
  Processing /home/michaellan/.cache/pypoetry/artifacts/a5/5f/9d/f4a1b29df9922fc3a755741d94f5a94743e64cabe27c3d5642c28d6ad5/ciso
8601-2.2.0.tar.gz
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
    Preparing metadata (pyproject.toml): started
    Preparing metadata (pyproject.toml): finished with status 'done'
  Building wheels for collected packages: ciso8601
    Building wheel for ciso8601 (pyproject.toml): started
    Building wheel for ciso8601 (pyproject.toml): finished with status 'error'
    error: subprocess-exited-with-error

    × Building wheel for ciso8601 (pyproject.toml) did not run successfully.
    │ exit code: 1
    ╰─> [17 lines of output]
        running bdist_wheel
        running build
        running build_py
        creating build
        creating build/lib.linux-x86_64-cpython-310
        creating build/lib.linux-x86_64-cpython-310/ciso8601
        copying ciso8601/__init__.pyi -> build/lib.linux-x86_64-cpython-310/ciso8601
        copying ciso8601/py.typed -> build/lib.linux-x86_64-cpython-310/ciso8601
        running build_ext
        building 'ciso8601' extension
        creating build/temp.linux-x86_64-cpython-310
        x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-stron
g -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DCISO8601_VERSION=2.2.0 -DCISO8601_CACHING_ENABLED=1 -I/home/michaellan
/.cache/pypoetry/virtualenvs/tap-s3-h0qP_m2Y-py3.10/include -I/usr/include/python3.10 -c module.c -o build/temp.linux-x86_64-cpy
thon-310/module.o
        module.c:1:10: fatal error: Python.h: No such file or directory
            1 | #include <Python.h>
              |          ^~~~~~~~~~
        compilation terminated.
        error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
        [end of output]

    note: This error originates from a subprocess, and is likely not a problem with pip.
    ERROR: Failed building wheel for ciso8601
  Failed to build ciso8601
  ERROR: Could not build wheels for ciso8601, which is required to install pyproject.toml-based projects
e
Right, so it might depend on how you installed Python 3.10:
You may be able to work around this by setting
C_INCLUDE_PATH
to the location of the directory containing
Python.h
, which might be
/System/Library/Frameworks/Python.framework/Headers
. Depends on how you installed Python. It’ll be in a different location if you used Homebrew.
Regardless,
ciso8601
is definitely causing problems for some users.
m
Installing python3.10-dev solved the problem.