CadQuery / cadquery

A python parametric CAD scripting framework based on OCCT
https://cadquery.readthedocs.io
Other
2.98k stars 281 forks source link

Cadquery import issue "cannot import name 'TypeGuard" #1064

Closed tommy3001 closed 2 years ago

tommy3001 commented 2 years ago

To Reproduce

I can not import cadquery anymore. I installed only a few additional packages.

The version is the actual master branch installed with

conda install -c cadquery -c conda-forge cadquery=master

Backtrace

Traceback (most recent call last): File "/home/tommy/miniforge/lib/python3.9/site-packages/nptyping/assert_isinstance.py", line 33, in from typing import TypeGuard ImportError: cannot import name 'TypeGuard' from 'typing' (/home/tommy/miniforge/lib/python3.9/typing.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/tommy/Nextcloud/myGarden/MyHouse.py", line 1, in import cadquery as cq File "/home/tommy/miniforge/lib/python3.9/site-packages/cadquery/init.py", line 14, in from .occ_impl import exporters File "/home/tommy/miniforge/lib/python3.9/site-packages/cadquery/occ_impl/exporters/init.py", line 10, in from ...cq import Workplane File "/home/tommy/miniforge/lib/python3.9/site-packages/cadquery/cq.py", line 61, in from .sketch import Sketch File "/home/tommy/miniforge/lib/python3.9/site-packages/cadquery/sketch.py", line 28, in from .occ_impl.sketch_solver import ( File "/home/tommy/miniforge/lib/python3.9/site-packages/cadquery/occ_impl/sketch_solver.py", line 3, in from nptyping import NDArray as Array File "/home/tommy/miniforge/lib/python3.9/site-packages/nptyping/init.py", line 24, in from nptyping.assert_isinstance import assert_isinstance # type: ignore[attr-defined] File "/home/tommy/miniforge/lib/python3.9/site-packages/nptyping/assert_isinstance.py", line 35, in from typing_extensions import TypeGuard ImportError: cannot import name 'TypeGuard' from 'typing_extensions' (/home/tommy/miniforge/lib/python3.9/site-packages/typing_extensions.py)

Environment

OS: "Ubuntu 20.04.4 LTS"

Output of conda list from your active Conda environment:

Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge abseil-cpp 20210324.2 h9c3ff4c_0 conda-forge absl-py 0.15.0 pyhd8ed1ab_0 conda-forge aiohttp 3.8.1 py39hb9d737c_1 conda-forge aiosignal 1.2.0 pyhd8ed1ab_0 conda-forge alsa-lib 1.2.3 h516909a_0 conda-forge asttokens 2.0.5 pyhd8ed1ab_0 conda-forge astunparse 1.6.3 pyhd8ed1ab_0 conda-forge async-timeout 4.0.2 pyhd8ed1ab_0 conda-forge attrs 21.4.0 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 py_2 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge blinker 1.4 py_1 conda-forge brotli 1.0.9 h166bdaf_7 conda-forge brotli-bin 1.0.9 h166bdaf_7 conda-forge brotlipy 0.7.0 py39hb9d737c_1004 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.18.1 h7f98852_0 conda-forge ca-certificates 2021.10.8 ha878542_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge cachetools 5.0.0 pyhd8ed1ab_0 conda-forge cadquery master py3.9 cadquery cairo 1.16.0 h6cf1ce9_1008 conda-forge certifi 2021.10.8 py39hf3d152e_2 conda-forge cffi 1.15.0 py39h4bc2ebd_0 conda-forge charset-normalizer 2.0.12 pyhd8ed1ab_0 conda-forge click 8.1.2 py39hf3d152e_0 conda-forge colorama 0.4.4 pyh9f0ad1d_0 conda-forge conda 4.12.0 py39hf3d152e_0 conda-forge conda-package-handling 1.8.1 py39hb9d737c_1 conda-forge cryptography 36.0.2 py39hd97740a_1 conda-forge cudatoolkit 11.0.3 h15472ef_10 conda-forge cudnn 8.2.1.32 h86fa8c9_0 conda-forge curl 7.82.0 h7bff187_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge dbus 1.13.6 h5008d03_3 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge double-conversion 3.1.7 h9c3ff4c_0 conda-forge eigen 3.4.0 h4bd325d_0 conda-forge executing 0.8.3 pyhd8ed1ab_0 conda-forge expat 2.4.8 h27087fc_0 conda-forge ezdxf 0.17.2 py39hf939315_1 conda-forge ffmpeg 4.3.2 h37c90e5_3 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge font-ttf-ubuntu 0.83 hab24e00_0 conda-forge fontconfig 2.14.0 h8e229c2_0 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge fonttools 4.33.3 py39hb9d737c_0 conda-forge freeimage 3.18.0 hf18588b_8 conda-forge freetype 2.10.4 h0708190_1 conda-forge frozenlist 1.3.0 py39hb9d737c_1 conda-forge gast 0.4.0 pyh9f0ad1d_0 conda-forge gettext 0.19.8.1 h73d1719_1008 conda-forge giflib 5.2.1 h36c2ea0_2 conda-forge gl2ps 1.4.2 h0708190_0 conda-forge glew 2.1.0 h9c3ff4c_2 conda-forge gmp 6.2.1 h58526e2_0 conda-forge gnutls 3.6.13 h85f3911_1 conda-forge google-auth 2.6.6 pyh6c4a22f_0 conda-forge google-auth-oauthlib 0.4.6 pyhd8ed1ab_0 conda-forge google-pasta 0.2.0 pyh8c360ce_0 conda-forge graphite2 1.3.13 h58526e2_1001 conda-forge grpc-cpp 1.39.1 h850795e_1 conda-forge grpcio 1.39.0 py39hff7568b_0 conda-forge gst-plugins-base 1.18.5 hf529b03_3 conda-forge gstreamer 1.18.5 h9f60fe5_3 conda-forge h5py 3.1.0 nompi_py39h25020de_100 conda-forge harfbuzz 2.9.1 h83ec7ef_1 conda-forge hdf4 4.2.15 h10796ff_3 conda-forge hdf5 1.10.6 nompi_h6a2412b_1114 conda-forge icu 68.2 h9c3ff4c_0 conda-forge idna 3.3 pyhd8ed1ab_0 conda-forge imageai 2.1.6 pyhd8ed1ab_1 conda-forge imath 3.1.5 h6239696_0 conda-forge importlib-metadata 4.11.3 py39hf3d152e_1 conda-forge ipython 8.2.0 py39hf3d152e_0 conda-forge jasper 1.900.1 h07fcdf6_1006 conda-forge jbig 2.1 h7f98852_2003 conda-forge jedi 0.18.1 py39hf3d152e_1 conda-forge joblib 1.1.0 pyhd8ed1ab_0 conda-forge jpeg 9e h166bdaf_1 conda-forge jsoncpp 1.9.4 h4bd325d_3 conda-forge jxrlib 1.1 h7f98852_2 conda-forge keras 2.6.0 pyhd8ed1ab_1 conda-forge keras-preprocessing 1.1.2 pyhd8ed1ab_0 conda-forge keras-resnet 0.2.0 pyh9f0ad1d_0 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge kiwisolver 1.4.2 py39hf939315_1 conda-forge krb5 1.19.3 h3790be6_0 conda-forge labelimg 1.8.6 py39hf3d152e_1 conda-forge lame 3.100 h7f98852_1001 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge lerc 3.0 h9c3ff4c_0 conda-forge libblas 3.9.0 14_linux64_openblas conda-forge libbrotlicommon 1.0.9 h166bdaf_7 conda-forge libbrotlidec 1.0.9 h166bdaf_7 conda-forge libbrotlienc 1.0.9 h166bdaf_7 conda-forge libcblas 3.9.0 14_linux64_openblas conda-forge libclang 11.1.0 default_ha53f305_1 conda-forge libcurl 7.82.0 h7bff187_0 conda-forge libdeflate 1.10 h7f98852_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libevent 2.1.10 h9b69904_4 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 11.2.0 h1d223b6_16 conda-forge libgfortran-ng 11.2.0 h69a702a_16 conda-forge libgfortran5 11.2.0 h5c6108e_16 conda-forge libglib 2.70.2 h174f98d_4 conda-forge libglu 9.0.0 he1b5a44_1001 conda-forge libgomp 11.2.0 h1d223b6_16 conda-forge libiconv 1.16 h516909a_0 conda-forge liblapack 3.9.0 14_linux64_openblas conda-forge liblapacke 3.9.0 14_linux64_openblas conda-forge libllvm11 11.1.0 hf817b99_3 conda-forge libnetcdf 4.8.1 nompi_hcd642e3_100 conda-forge libnghttp2 1.47.0 h727a467_0 conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libogg 1.3.4 h7f98852_1 conda-forge libopenblas 0.3.20 pthreads_h78a6416_0 conda-forge libopencv 4.5.3 py39h70bf20d_1 conda-forge libopus 1.3.1 h7f98852_1 conda-forge libpng 1.6.37 h21135ba_2 conda-forge libpq 13.5 hd57d9b9_1 conda-forge libprotobuf 3.16.0 h780b84a_0 conda-forge libraw 0.20.2 h10796ff_1 conda-forge libssh2 1.10.0 ha56f1ee_2 conda-forge libstdcxx-ng 11.2.0 he4da1e4_16 conda-forge libtheora 1.1.1 h7f98852_1005 conda-forge libtiff 4.3.0 h542a066_3 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libvorbis 1.3.7 h9c3ff4c_0 conda-forge libwebp 1.2.2 h3452ae3_0 conda-forge libwebp-base 1.2.2 h7f98852_1 conda-forge libxcb 1.13 h7f98852_1004 conda-forge libxkbcommon 1.0.3 he3ba5ed_0 conda-forge libxml2 2.9.12 h72842e0_0 conda-forge libxslt 1.1.33 h15afd5d_2 conda-forge libzip 1.8.0 h4de3113_1 conda-forge libzlib 1.2.11 h166bdaf_1014 conda-forge loguru 0.6.0 py39hf3d152e_1 conda-forge lxml 4.8.0 py39hb9d737c_2 conda-forge lz4-c 1.9.3 h9c3ff4c_1 conda-forge markdown 3.3.6 pyhd8ed1ab_0 conda-forge matplotlib-base 3.5.1 py39h2fa2bec_0 conda-forge matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge multidict 6.0.2 py39hb9d737c_1 conda-forge multimethod 1.6 pyhd8ed1ab_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mysql-common 8.0.28 haf5c9bc_4 conda-forge mysql-libs 8.0.28 h28c427c_4 conda-forge nccl 2.12.10.1 h17a0586_0 conda-forge ncurses 6.3 h27087fc_1 conda-forge nettle 3.6 he412f7d_0 conda-forge nlopt 2.7.1 py39h3e08f04_0 conda-forge nptyping 1.4.4 pypi_0 pypi nspr 4.32 h9c3ff4c_1 conda-forge nss 3.77 h2350873_0 conda-forge numpy 1.19.5 py39hd249d9e_3 conda-forge oauthlib 3.2.0 pyhd8ed1ab_0 conda-forge occt 7.5.3 h7391655_0 conda-forge ocp 7.5.3.0 py39_3 cadquery opencv 4.5.3 py39hf3d152e_1 conda-forge openexr 3.1.5 he0ac6c6_0 conda-forge openh264 2.1.1 h780b84a_0 conda-forge openjpeg 2.4.0 hb52868f_1 conda-forge openssl 1.1.1n h166bdaf_0 conda-forge opt_einsum 3.3.0 pyhd8ed1ab_1 conda-forge packaging 21.3 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pcre 8.45 h9c3ff4c_0 conda-forge pexpect 4.8.0 pyh9f0ad1d_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 9.1.0 py39hae2aec6_2 conda-forge pip 22.0.4 pyhd8ed1ab_0 conda-forge pixman 0.40.0 h36c2ea0_0 conda-forge proj 7.2.0 h277dcde_2 conda-forge prompt-toolkit 3.0.29 pyha770c72_0 conda-forge protobuf 3.16.0 py39he80948d_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pugixml 1.11.4 h9c3ff4c_0 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge py-opencv 4.5.3 py39hef51801_1 conda-forge pyasn1 0.4.8 py_0 conda-forge pyasn1-modules 0.2.7 py_0 conda-forge pycosat 0.6.3 py39hb9d737c_1010 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pygments 2.12.0 pyhd8ed1ab_0 conda-forge pyjwt 2.3.0 pyhd8ed1ab_1 conda-forge pyopenssl 22.0.0 pyhd8ed1ab_0 conda-forge pyparsing 3.0.8 pyhd8ed1ab_0 conda-forge pyqt 5.12.3 py39hf3d152e_8 conda-forge pyqt-impl 5.12.3 py39hde8b62d_8 conda-forge pyqt5-sip 4.19.18 py39he80948d_8 conda-forge pyqtchart 5.12 py39h0fcd23e_8 conda-forge pyqtwebengine 5.12.1 py39h0fcd23e_8 conda-forge pysocks 1.7.1 py39hf3d152e_5 conda-forge python 3.9.10 h85951f9_2_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-flatbuffers 1.12 pyhd8ed1ab_1 conda-forge python_abi 3.9 2_cp39 conda-forge pyu2f 0.1.5 pyhd8ed1ab_0 conda-forge qt 5.12.9 hda022c4_4 conda-forge rapidjson 1.1.0 he1b5a44_1002 conda-forge re2 2021.09.01 h9c3ff4c_0 conda-forge readline 8.1 h46c0cb4_0 conda-forge requests 2.27.1 pyhd8ed1ab_0 conda-forge requests-oauthlib 1.3.1 pyhd8ed1ab_0 conda-forge rsa 4.8 pyhd8ed1ab_0 conda-forge ruamel_yaml 0.15.80 py39h3811e60_1006 conda-forge scikit-learn 1.0.2 py39h4dfa638_0 conda-forge scipy 1.8.0 py39hee8e79c_1 conda-forge setuptools 62.1.0 py39hf3d152e_0 conda-forge six 1.15.0 pyh9f0ad1d_0 conda-forge snappy 1.1.8 he1b5a44_3 conda-forge sqlite 3.38.2 h4ff8645_0 conda-forge stack_data 0.2.0 pyhd8ed1ab_0 conda-forge tbb 2020.2 h4bd325d_4 conda-forge tbb-devel 2020.2 h4bd325d_4 conda-forge tensorboard 2.8.0 pyhd8ed1ab_1 conda-forge tensorboard-data-server 0.6.0 py39hd97740a_2 conda-forge tensorboard-plugin-wit 1.8.1 pyhd8ed1ab_0 conda-forge tensorflow 2.6.0 cuda110py39h22e3326_2 conda-forge tensorflow-base 2.6.0 cuda110py39hd7afca0_2 conda-forge tensorflow-estimator 2.6.0 cuda110py39hf2ba822_2 conda-forge tensorflow-gpu 2.6.0 cuda110py39h5b0ac8e_2 conda-forge termcolor 1.1.0 py_2 conda-forge threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge tk 8.6.12 h27826a3_0 conda-forge tqdm 4.64.0 pyhd8ed1ab_0 conda-forge traitlets 5.1.1 pyhd8ed1ab_0 conda-forge typeguard 2.13.0 pyhd8ed1ab_0 conda-forge typing-extensions 3.7.4.3 0 conda-forge typing_extensions 3.7.4.3 py_0 conda-forge typish 1.9.3 pyhd8ed1ab_0 conda-forge tzdata 2022a h191b570_0 conda-forge unicodedata2 14.0.0 py39hb9d737c_1 conda-forge urllib3 1.26.9 pyhd8ed1ab_0 conda-forge utfcpp 3.2.1 ha770c72_0 conda-forge vtk 9.0.1 qt_py39hd1b08ba_210 conda-forge wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge werkzeug 2.1.1 pyhd8ed1ab_0 conda-forge wheel 0.37.1 pyhd8ed1ab_0 conda-forge wrapt 1.12.1 py39h3811e60_3 conda-forge x264 1!161.3030 h7f98852_1 conda-forge xorg-kbproto 1.0.7 h7f98852_1002 conda-forge xorg-libice 1.0.10 h7f98852_0 conda-forge xorg-libsm 1.2.3 hd9c2040_1000 conda-forge xorg-libx11 1.7.2 h7f98852_0 conda-forge xorg-libxau 1.0.9 h7f98852_0 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xorg-libxext 1.3.4 h7f98852_1 conda-forge xorg-libxrender 0.9.10 h7f98852_1003 conda-forge xorg-libxt 1.2.1 h7f98852_2 conda-forge xorg-renderproto 0.11.1 h7f98852_1002 conda-forge xorg-xextproto 7.3.0 h7f98852_1002 conda-forge xorg-xproto 7.0.31 h7f98852_1007 conda-forge xz 5.2.5 h516909a_1 conda-forge yaml 0.2.5 h7f98852_2 conda-forge yarl 1.7.2 py39hb9d737c_2 conda-forge zipp 3.8.0 pyhd8ed1ab_0 conda-forge zlib 1.2.11 h166bdaf_1014 conda-forge zstd 1.5.2 ha95c52a_0 conda-forge

Using: simple python3 script module import

tommy3001 commented 2 years ago

Ok, got it. It has something to do with the now solved bug #1050. I downgraded to nptyping 1.4.4 as a workaround a few days before, which is now obsolete. After reset of the environment and using nptyping 2.0.0, it is solved.