visual-layer / fastdup

fastdup is a powerful free tool designed to rapidly extract valuable insights from your image & video datasets. Assisting you to increase your dataset images & labels quality and reduce your data operations costs at an unparalleled scale.
Other
1.54k stars 74 forks source link

[Bug]: Cannot pip install fastdup on macOS 13.x Intel CPU #214

Open dnth opened 1 year ago

dnth commented 1 year ago

What happened?

I tried pip installing fastdup on macOS and it could not be installed.

What did you expect to see?

Successful installation.

What version of fastdup were you runnning on?

None. Failed to install any.

What version of Python were you running on?

Python 3.9

Operating System

macOS Ventura 13.4 Intel

Reproduction steps

pip install fastdup

Relevant log output

pip install fastdup
Collecting fastdup
  Using cached fastdup-1.10-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
Collecting pandas
  Using cached pandas-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl (11.8 MB)
Collecting packaging
  Downloading packaging-23.1-py3-none-any.whl (48 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 48.9/48.9 kB 1.5 MB/s eta 0:00:00
Collecting pillow==9.1.0
  Downloading Pillow-9.1.0-cp39-cp39-macosx_10_9_x86_64.whl (3.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 4.1 MB/s eta 0:00:00
Collecting certifi
  Using cached certifi-2023.5.7-py3-none-any.whl (156 kB)
Collecting numpy
  Using cached numpy-1.24.3-cp39-cp39-macosx_10_9_x86_64.whl (19.8 MB)
Collecting fastdup
  Using cached fastdup-1.9-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.8-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.7-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.6-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.4-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.3-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.2-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-1.0-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-0.929-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
  Using cached fastdup-0.924-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB)
ERROR: Cannot install fastdup==0.924, fastdup==0.929, fastdup==1.0, fastdup==1.10, fastdup==1.2, fastdup==1.3, fastdup==1.4, fastdup==1.6, fastdup==1.7, fastdup==1.8 and fastdup==1.9 because these package versions have conflicting dependencies.

The conflict is caused by:
    fastdup 1.10 depends on opencv-python-headless==4.1.2.30
    fastdup 1.9 depends on opencv-python-headless==4.1.2.30
    fastdup 1.8 depends on opencv-python-headless==4.1.2.30
    fastdup 1.7 depends on opencv-python-headless==4.1.2.30
    fastdup 1.6 depends on opencv-python-headless==4.1.2.30
    fastdup 1.4 depends on opencv-python-headless==4.1.2.30
    fastdup 1.3 depends on opencv-python-headless==4.1.2.30
    fastdup 1.2 depends on opencv-python-headless==4.1.2.30
    fastdup 1.0 depends on opencv-python-headless==4.1.2.30
    fastdup 0.929 depends on opencv-python-headless==4.1.2.30
    fastdup 0.924 depends on opencv-python-headless==4.1.2.30

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

Attach a screenshot [Optional]

No response

Contact Details [Optional]

No response

dbickson commented 1 year ago

hello @dnth the conflict is due to opencv-headless, we are compiling for mac intel on 10.X while you are installing on 13.X. The version of opencv-headless which is working on 10.X is too old for 13.X. Can you try installing with --no-deps, then install those deps one by one: install_requires=['pandas', 'numpy', 'tqdm', 'pyyaml', 'requests==2.28.1', 'packaging', 'sentry_sdk', 'pillow', 'opencv-python-headless'] And then let me know if fastdup is working, and for which opencv-python-headless it is working on your machine. Try to install with a few different opencv-python-headless and let me know which range is working and i will try to check it on the 10.X mac. Once we find a version that is working on both machines I can pin it.

dnth commented 1 year ago

Here's my pip list after manually installing all of them

Package                Version
---------------------- --------
certifi                2023.5.7
charset-normalizer     2.1.1
contourpy              1.0.7
cycler                 0.11.0
fastdup                1.10
fonttools              4.39.4
idna                   3.4
importlib-resources    5.12.0
kiwisolver             1.4.4
matplotlib             3.7.1
numpy                  1.24.3
opencv-python-headless 4.7.0.72
packaging              23.1
pandas                 2.0.2
Pillow                 9.5.0
pip                    23.0.1
pyparsing              3.0.9
python-dateutil        2.8.2
pytz                   2023.3
PyYAML                 6.0
requests               2.28.1
sentry-sdk             1.25.0
setuptools             67.8.0
six                    1.16.0
tqdm                   4.65.0
tzdata                 2023.3
urllib3                1.26.16
wheel                  0.38.4
zipp                   3.15.0
dbickson commented 1 year ago

@dnth we have a workaround but it needs a special compiled version for mac 13.x. Anyone who encountered this error please reach out and we will share the solution to make sure it works for you.

DrorHaor commented 1 year ago

Hi @dbickson I also have this issue o mac 13.x . Can you share the workaround?

dbickson commented 1 year ago

Hi @DrorHaor sure I can share today. Just to confirm we are talking about Mac Intel right?

dbickson commented 1 year ago

Hi @DrorHaor, version 1.22 is released for macos 13 intel (x86_64), please try it out. If the release is not found, please send us your python compatability output using the command: python3.8 -m pip debug --verbose or whatever python you have instead of python3.8. (p.s. only 3.8 and 3.9 are supported at this point. Also try to upgrade your pip using pip install -U pip). thanks

DrorHaor commented 1 year ago

@dbickson pip version: pip 23.1.2 from /Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/pip (python 3.9) sys.version: 3.9.15 | packaged by conda-forge | (main, Nov 22 2022, 08:55:37) [Clang 14.0.6 ] sys.executable: /Users/drorhaor/seetree-envs/CLIP39/bin/python3.9 sys.getdefaultencoding: utf-8 sys.getfilesystemencoding: utf-8 locale.getpreferredencoding: UTF-8 sys.platform: darwin sys.implementation: name: cpython 'cert' config value: Not specified REQUESTS_CA_BUNDLE: None CURL_CA_BUNDLE: None pip._vendor.certifi.where(): /Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem pip._vendor.DEBUNDLED: False vendored library versions: CacheControl==0.12.11 colorama==0.4.6 distlib==0.3.6 distro==1.8.0 msgpack==1.0.5 packaging==21.3 platformdirs==3.2.0 pyparsing==3.0.9 pyproject-hooks==1.0.0 requests==2.28.2 certifi==2022.12.07 chardet==5.1.0 idna==3.4 urllib3==1.26.15 rich==13.3.3 (Unable to locate actual module version, using vendor.txt specified version) pygments==2.14.0 typing_extensions==4.5.0 (Unable to locate actual module version, using vendor.txt specified version) resolvelib==1.0.1 setuptools==67.7.2 (Unable to locate actual module version, using vendor.txt specified version) six==1.16.0 tenacity==8.2.2 (Unable to locate actual module version, using vendor.txt specified version) tomli==2.0.1 webencodings==0.5.1 (Unable to locate actual module version, using vendor.txt specified version) Compatible tags: 2028 cp39-cp39-macosx_13_0_x86_64 cp39-cp39-macosx_13_0_intel cp39-cp39-macosx_13_0_fat64 cp39-cp39-macosx_13_0_fat32 cp39-cp39-macosx_13_0_universal2 cp39-cp39-macosx_13_0_universal cp39-cp39-macosx_12_0_x86_64 cp39-cp39-macosx_12_0_intel cp39-cp39-macosx_12_0_fat64 cp39-cp39-macosx_12_0_fat32 cp39-cp39-macosx_12_0_universal2 cp39-cp39-macosx_12_0_universal cp39-cp39-macosx_11_0_x86_64 cp39-cp39-macosx_11_0_intel cp39-cp39-macosx_11_0_fat64 cp39-cp39-macosx_11_0_fat32 cp39-cp39-macosx_11_0_universal2 cp39-cp39-macosx_11_0_universal cp39-cp39-macosx_10_16_x86_64 cp39-cp39-macosx_10_16_intel cp39-cp39-macosx_10_16_fat64 cp39-cp39-macosx_10_16_fat32 cp39-cp39-macosx_10_16_universal2 cp39-cp39-macosx_10_16_universal cp39-cp39-macosx_10_15_x86_64 cp39-cp39-macosx_10_15_intel cp39-cp39-macosx_10_15_fat64 cp39-cp39-macosx_10_15_fat32 cp39-cp39-macosx_10_15_universal2 cp39-cp39-macosx_10_15_universal cp39-cp39-macosx_10_14_x86_64 cp39-cp39-macosx_10_14_intel cp39-cp39-macosx_10_14_fat64 cp39-cp39-macosx_10_14_fat32 cp39-cp39-macosx_10_14_universal2 cp39-cp39-macosx_10_14_universal cp39-cp39-macosx_10_13_x86_64 cp39-cp39-macosx_10_13_intel cp39-cp39-macosx_10_13_fat64 cp39-cp39-macosx_10_13_fat32 cp39-cp39-macosx_10_13_universal2 cp39-cp39-macosx_10_13_universal cp39-cp39-macosx_10_12_x86_64 cp39-cp39-macosx_10_12_intel cp39-cp39-macosx_10_12_fat64 cp39-cp39-macosx_10_12_fat32 cp39-cp39-macosx_10_12_universal2 cp39-cp39-macosx_10_12_universal cp39-cp39-macosx_10_11_x86_64 cp39-cp39-macosx_10_11_intel cp39-cp39-macosx_10_11_fat64 cp39-cp39-macosx_10_11_fat32 cp39-cp39-macosx_10_11_universal2 cp39-cp39-macosx_10_11_universal cp39-cp39-macosx_10_10_x86_64 cp39-cp39-macosx_10_10_intel cp39-cp39-macosx_10_10_fat64 cp39-cp39-macosx_10_10_fat32 cp39-cp39-macosx_10_10_universal2 cp39-cp39-macosx_10_10_universal cp39-cp39-macosx_10_9_x86_64 cp39-cp39-macosx_10_9_intel cp39-cp39-macosx_10_9_fat64 cp39-cp39-macosx_10_9_fat32 cp39-cp39-macosx_10_9_universal2 cp39-cp39-macosx_10_9_universal cp39-cp39-macosx_10_8_x86_64 cp39-cp39-macosx_10_8_intel cp39-cp39-macosx_10_8_fat64 cp39-cp39-macosx_10_8_fat32 cp39-cp39-macosx_10_8_universal2 cp39-cp39-macosx_10_8_universal cp39-cp39-macosx_10_7_x86_64 cp39-cp39-macosx_10_7_intel cp39-cp39-macosx_10_7_fat64 cp39-cp39-macosx_10_7_fat32 cp39-cp39-macosx_10_7_universal2 cp39-cp39-macosx_10_7_universal cp39-cp39-macosx_10_6_x86_64 cp39-cp39-macosx_10_6_intel cp39-cp39-macosx_10_6_fat64 cp39-cp39-macosx_10_6_fat32 cp39-cp39-macosx_10_6_universal2 cp39-cp39-macosx_10_6_universal cp39-cp39-macosx_10_5_x86_64 cp39-cp39-macosx_10_5_intel cp39-cp39-macosx_10_5_fat64 cp39-cp39-macosx_10_5_fat32 cp39-cp39-macosx_10_5_universal2 cp39-cp39-macosx_10_5_universal cp39-cp39-macosx_10_4_x86_64 cp39-cp39-macosx_10_4_intel cp39-cp39-macosx_10_4_fat64 cp39-cp39-macosx_10_4_fat32 cp39-cp39-macosx_10_4_universal2 cp39-cp39-macosx_10_4_universal cp39-abi3-macosx_13_0_x86_64 cp39-abi3-macosx_13_0_intel cp39-abi3-macosx_13_0_fat64 cp39-abi3-macosx_13_0_fat32 cp39-abi3-macosx_13_0_universal2 cp39-abi3-macosx_13_0_universal cp39-abi3-macosx_12_0_x86_64 cp39-abi3-macosx_12_0_intel cp39-abi3-macosx_12_0_fat64 cp39-abi3-macosx_12_0_fat32 cp39-abi3-macosx_12_0_universal2 cp39-abi3-macosx_12_0_universal cp39-abi3-macosx_11_0_x86_64 cp39-abi3-macosx_11_0_intel cp39-abi3-macosx_11_0_fat64 cp39-abi3-macosx_11_0_fat32 cp39-abi3-macosx_11_0_universal2 cp39-abi3-macosx_11_0_universal cp39-abi3-macosx_10_16_x86_64 cp39-abi3-macosx_10_16_intel cp39-abi3-macosx_10_16_fat64 cp39-abi3-macosx_10_16_fat32 cp39-abi3-macosx_10_16_universal2 cp39-abi3-macosx_10_16_universal cp39-abi3-macosx_10_15_x86_64 cp39-abi3-macosx_10_15_intel cp39-abi3-macosx_10_15_fat64 cp39-abi3-macosx_10_15_fat32 cp39-abi3-macosx_10_15_universal2 cp39-abi3-macosx_10_15_universal cp39-abi3-macosx_10_14_x86_64 cp39-abi3-macosx_10_14_intel cp39-abi3-macosx_10_14_fat64 cp39-abi3-macosx_10_14_fat32 cp39-abi3-macosx_10_14_universal2 cp39-abi3-macosx_10_14_universal cp39-abi3-macosx_10_13_x86_64 cp39-abi3-macosx_10_13_intel cp39-abi3-macosx_10_13_fat64 cp39-abi3-macosx_10_13_fat32 cp39-abi3-macosx_10_13_universal2 cp39-abi3-macosx_10_13_universal cp39-abi3-macosx_10_12_x86_64 cp39-abi3-macosx_10_12_intel cp39-abi3-macosx_10_12_fat64 cp39-abi3-macosx_10_12_fat32 cp39-abi3-macosx_10_12_universal2 cp39-abi3-macosx_10_12_universal cp39-abi3-macosx_10_11_x86_64 cp39-abi3-macosx_10_11_intel cp39-abi3-macosx_10_11_fat64 cp39-abi3-macosx_10_11_fat32 cp39-abi3-macosx_10_11_universal2 cp39-abi3-macosx_10_11_universal cp39-abi3-macosx_10_10_x86_64 cp39-abi3-macosx_10_10_intel cp39-abi3-macosx_10_10_fat64 cp39-abi3-macosx_10_10_fat32 cp39-abi3-macosx_10_10_universal2 cp39-abi3-macosx_10_10_universal cp39-abi3-macosx_10_9_x86_64 cp39-abi3-macosx_10_9_intel cp39-abi3-macosx_10_9_fat64 cp39-abi3-macosx_10_9_fat32 cp39-abi3-macosx_10_9_universal2 cp39-abi3-macosx_10_9_universal cp39-abi3-macosx_10_8_x86_64 cp39-abi3-macosx_10_8_intel cp39-abi3-macosx_10_8_fat64 cp39-abi3-macosx_10_8_fat32 cp39-abi3-macosx_10_8_universal2 cp39-abi3-macosx_10_8_universal cp39-abi3-macosx_10_7_x86_64 cp39-abi3-macosx_10_7_intel cp39-abi3-macosx_10_7_fat64 cp39-abi3-macosx_10_7_fat32 cp39-abi3-macosx_10_7_universal2 cp39-abi3-macosx_10_7_universal cp39-abi3-macosx_10_6_x86_64 cp39-abi3-macosx_10_6_intel cp39-abi3-macosx_10_6_fat64 cp39-abi3-macosx_10_6_fat32 cp39-abi3-macosx_10_6_universal2 cp39-abi3-macosx_10_6_universal cp39-abi3-macosx_10_5_x86_64 cp39-abi3-macosx_10_5_intel cp39-abi3-macosx_10_5_fat64 cp39-abi3-macosx_10_5_fat32 cp39-abi3-macosx_10_5_universal2 cp39-abi3-macosx_10_5_universal cp39-abi3-macosx_10_4_x86_64 cp39-abi3-macosx_10_4_intel cp39-abi3-macosx_10_4_fat64 cp39-abi3-macosx_10_4_fat32 cp39-abi3-macosx_10_4_universal2 cp39-abi3-macosx_10_4_universal cp39-none-macosx_13_0_x86_64 cp39-none-macosx_13_0_intel cp39-none-macosx_13_0_fat64 cp39-none-macosx_13_0_fat32 cp39-none-macosx_13_0_universal2 cp39-none-macosx_13_0_universal cp39-none-macosx_12_0_x86_64 cp39-none-macosx_12_0_intel cp39-none-macosx_12_0_fat64 cp39-none-macosx_12_0_fat32 cp39-none-macosx_12_0_universal2 cp39-none-macosx_12_0_universal cp39-none-macosx_11_0_x86_64 cp39-none-macosx_11_0_intel cp39-none-macosx_11_0_fat64 cp39-none-macosx_11_0_fat32 cp39-none-macosx_11_0_universal2 cp39-none-macosx_11_0_universal cp39-none-macosx_10_16_x86_64 cp39-none-macosx_10_16_intel cp39-none-macosx_10_16_fat64 cp39-none-macosx_10_16_fat32 cp39-none-macosx_10_16_universal2 cp39-none-macosx_10_16_universal cp39-none-macosx_10_15_x86_64 cp39-none-macosx_10_15_intel cp39-none-macosx_10_15_fat64 cp39-none-macosx_10_15_fat32 cp39-none-macosx_10_15_universal2 cp39-none-macosx_10_15_universal cp39-none-macosx_10_14_x86_64 cp39-none-macosx_10_14_intel cp39-none-macosx_10_14_fat64 cp39-none-macosx_10_14_fat32 cp39-none-macosx_10_14_universal2 cp39-none-macosx_10_14_universal cp39-none-macosx_10_13_x86_64 cp39-none-macosx_10_13_intel cp39-none-macosx_10_13_fat64 cp39-none-macosx_10_13_fat32 cp39-none-macosx_10_13_universal2 cp39-none-macosx_10_13_universal cp39-none-macosx_10_12_x86_64 cp39-none-macosx_10_12_intel cp39-none-macosx_10_12_fat64 cp39-none-macosx_10_12_fat32 cp39-none-macosx_10_12_universal2 cp39-none-macosx_10_12_universal cp39-none-macosx_10_11_x86_64 cp39-none-macosx_10_11_intel cp39-none-macosx_10_11_fat64 cp39-none-macosx_10_11_fat32 cp39-none-macosx_10_11_universal2 cp39-none-macosx_10_11_universal cp39-none-macosx_10_10_x86_64 cp39-none-macosx_10_10_intel cp39-none-macosx_10_10_fat64 cp39-none-macosx_10_10_fat32 cp39-none-macosx_10_10_universal2 cp39-none-macosx_10_10_universal cp39-none-macosx_10_9_x86_64 cp39-none-macosx_10_9_intel cp39-none-macosx_10_9_fat64 cp39-none-macosx_10_9_fat32 cp39-none-macosx_10_9_universal2 cp39-none-macosx_10_9_universal cp39-none-macosx_10_8_x86_64 cp39-none-macosx_10_8_intel cp39-none-macosx_10_8_fat64 cp39-none-macosx_10_8_fat32 cp39-none-macosx_10_8_universal2 cp39-none-macosx_10_8_universal cp39-none-macosx_10_7_x86_64 cp39-none-macosx_10_7_intel cp39-none-macosx_10_7_fat64 cp39-none-macosx_10_7_fat32 cp39-none-macosx_10_7_universal2 cp39-none-macosx_10_7_universal cp39-none-macosx_10_6_x86_64 cp39-none-macosx_10_6_intel cp39-none-macosx_10_6_fat64 cp39-none-macosx_10_6_fat32 cp39-none-macosx_10_6_universal2 cp39-none-macosx_10_6_universal cp39-none-macosx_10_5_x86_64 cp39-none-macosx_10_5_intel cp39-none-macosx_10_5_fat64 cp39-none-macosx_10_5_fat32 cp39-none-macosx_10_5_universal2 cp39-none-macosx_10_5_universal cp39-none-macosx_10_4_x86_64 cp39-none-macosx_10_4_intel cp39-none-macosx_10_4_fat64 cp39-none-macosx_10_4_fat32 cp39-none-macosx_10_4_universal2 cp39-none-macosx_10_4_universal cp38-abi3-macosx_13_0_x86_64 cp38-abi3-macosx_13_0_intel cp38-abi3-macosx_13_0_fat64 cp38-abi3-macosx_13_0_fat32 cp38-abi3-macosx_13_0_universal2 cp38-abi3-macosx_13_0_universal cp38-abi3-macosx_12_0_x86_64 cp38-abi3-macosx_12_0_intel cp38-abi3-macosx_12_0_fat64 cp38-abi3-macosx_12_0_fat32 cp38-abi3-macosx_12_0_universal2 cp38-abi3-macosx_12_0_universal cp38-abi3-macosx_11_0_x86_64 cp38-abi3-macosx_11_0_intel cp38-abi3-macosx_11_0_fat64 cp38-abi3-macosx_11_0_fat32 cp38-abi3-macosx_11_0_universal2 cp38-abi3-macosx_11_0_universal cp38-abi3-macosx_10_16_x86_64 cp38-abi3-macosx_10_16_intel cp38-abi3-macosx_10_16_fat64 cp38-abi3-macosx_10_16_fat32 cp38-abi3-macosx_10_16_universal2 cp38-abi3-macosx_10_16_universal cp38-abi3-macosx_10_15_x86_64 cp38-abi3-macosx_10_15_intel cp38-abi3-macosx_10_15_fat64 cp38-abi3-macosx_10_15_fat32 cp38-abi3-macosx_10_15_universal2 cp38-abi3-macosx_10_15_universal cp38-abi3-macosx_10_14_x86_64 cp38-abi3-macosx_10_14_intel cp38-abi3-macosx_10_14_fat64 cp38-abi3-macosx_10_14_fat32 cp38-abi3-macosx_10_14_universal2 cp38-abi3-macosx_10_14_universal cp38-abi3-macosx_10_13_x86_64 cp38-abi3-macosx_10_13_intel cp38-abi3-macosx_10_13_fat64 cp38-abi3-macosx_10_13_fat32 cp38-abi3-macosx_10_13_universal2 cp38-abi3-macosx_10_13_universal cp38-abi3-macosx_10_12_x86_64 cp38-abi3-macosx_10_12_intel cp38-abi3-macosx_10_12_fat64 cp38-abi3-macosx_10_12_fat32 cp38-abi3-macosx_10_12_universal2 cp38-abi3-macosx_10_12_universal cp38-abi3-macosx_10_11_x86_64 cp38-abi3-macosx_10_11_intel cp38-abi3-macosx_10_11_fat64 cp38-abi3-macosx_10_11_fat32 cp38-abi3-macosx_10_11_universal2 cp38-abi3-macosx_10_11_universal cp38-abi3-macosx_10_10_x86_64 cp38-abi3-macosx_10_10_intel cp38-abi3-macosx_10_10_fat64 cp38-abi3-macosx_10_10_fat32 cp38-abi3-macosx_10_10_universal2 cp38-abi3-macosx_10_10_universal cp38-abi3-macosx_10_9_x86_64 cp38-abi3-macosx_10_9_intel cp38-abi3-macosx_10_9_fat64 cp38-abi3-macosx_10_9_fat32 cp38-abi3-macosx_10_9_universal2 cp38-abi3-macosx_10_9_universal cp38-abi3-macosx_10_8_x86_64 cp38-abi3-macosx_10_8_intel cp38-abi3-macosx_10_8_fat64 cp38-abi3-macosx_10_8_fat32 cp38-abi3-macosx_10_8_universal2 cp38-abi3-macosx_10_8_universal cp38-abi3-macosx_10_7_x86_64 cp38-abi3-macosx_10_7_intel cp38-abi3-macosx_10_7_fat64 cp38-abi3-macosx_10_7_fat32 cp38-abi3-macosx_10_7_universal2 cp38-abi3-macosx_10_7_universal cp38-abi3-macosx_10_6_x86_64 cp38-abi3-macosx_10_6_intel cp38-abi3-macosx_10_6_fat64 cp38-abi3-macosx_10_6_fat32 cp38-abi3-macosx_10_6_universal2 cp38-abi3-macosx_10_6_universal cp38-abi3-macosx_10_5_x86_64 cp38-abi3-macosx_10_5_intel cp38-abi3-macosx_10_5_fat64 cp38-abi3-macosx_10_5_fat32 cp38-abi3-macosx_10_5_universal2 cp38-abi3-macosx_10_5_universal cp38-abi3-macosx_10_4_x86_64 cp38-abi3-macosx_10_4_intel cp38-abi3-macosx_10_4_fat64 cp38-abi3-macosx_10_4_fat32 cp38-abi3-macosx_10_4_universal2 cp38-abi3-macosx_10_4_universal cp37-abi3-macosx_13_0_x86_64 cp37-abi3-macosx_13_0_intel cp37-abi3-macosx_13_0_fat64 cp37-abi3-macosx_13_0_fat32 cp37-abi3-macosx_13_0_universal2 cp37-abi3-macosx_13_0_universal cp37-abi3-macosx_12_0_x86_64 cp37-abi3-macosx_12_0_intel cp37-abi3-macosx_12_0_fat64 cp37-abi3-macosx_12_0_fat32 cp37-abi3-macosx_12_0_universal2 cp37-abi3-macosx_12_0_universal cp37-abi3-macosx_11_0_x86_64 cp37-abi3-macosx_11_0_intel cp37-abi3-macosx_11_0_fat64 cp37-abi3-macosx_11_0_fat32 cp37-abi3-macosx_11_0_universal2 cp37-abi3-macosx_11_0_universal cp37-abi3-macosx_10_16_x86_64 cp37-abi3-macosx_10_16_intel cp37-abi3-macosx_10_16_fat64 cp37-abi3-macosx_10_16_fat32 cp37-abi3-macosx_10_16_universal2 cp37-abi3-macosx_10_16_universal cp37-abi3-macosx_10_15_x86_64 cp37-abi3-macosx_10_15_intel cp37-abi3-macosx_10_15_fat64 cp37-abi3-macosx_10_15_fat32 cp37-abi3-macosx_10_15_universal2 cp37-abi3-macosx_10_15_universal cp37-abi3-macosx_10_14_x86_64 cp37-abi3-macosx_10_14_intel cp37-abi3-macosx_10_14_fat64 cp37-abi3-macosx_10_14_fat32 cp37-abi3-macosx_10_14_universal2 cp37-abi3-macosx_10_14_universal cp37-abi3-macosx_10_13_x86_64 cp37-abi3-macosx_10_13_intel cp37-abi3-macosx_10_13_fat64 cp37-abi3-macosx_10_13_fat32 cp37-abi3-macosx_10_13_universal2 cp37-abi3-macosx_10_13_universal cp37-abi3-macosx_10_12_x86_64 cp37-abi3-macosx_10_12_intel cp37-abi3-macosx_10_12_fat64 cp37-abi3-macosx_10_12_fat32 cp37-abi3-macosx_10_12_universal2 cp37-abi3-macosx_10_12_universal cp37-abi3-macosx_10_11_x86_64 cp37-abi3-macosx_10_11_intel cp37-abi3-macosx_10_11_fat64 cp37-abi3-macosx_10_11_fat32 cp37-abi3-macosx_10_11_universal2 cp37-abi3-macosx_10_11_universal cp37-abi3-macosx_10_10_x86_64 cp37-abi3-macosx_10_10_intel cp37-abi3-macosx_10_10_fat64 cp37-abi3-macosx_10_10_fat32 cp37-abi3-macosx_10_10_universal2 cp37-abi3-macosx_10_10_universal cp37-abi3-macosx_10_9_x86_64 cp37-abi3-macosx_10_9_intel cp37-abi3-macosx_10_9_fat64 cp37-abi3-macosx_10_9_fat32 cp37-abi3-macosx_10_9_universal2 cp37-abi3-macosx_10_9_universal cp37-abi3-macosx_10_8_x86_64 cp37-abi3-macosx_10_8_intel cp37-abi3-macosx_10_8_fat64 cp37-abi3-macosx_10_8_fat32 cp37-abi3-macosx_10_8_universal2 cp37-abi3-macosx_10_8_universal cp37-abi3-macosx_10_7_x86_64 cp37-abi3-macosx_10_7_intel cp37-abi3-macosx_10_7_fat64 cp37-abi3-macosx_10_7_fat32 cp37-abi3-macosx_10_7_universal2 cp37-abi3-macosx_10_7_universal cp37-abi3-macosx_10_6_x86_64 cp37-abi3-macosx_10_6_intel cp37-abi3-macosx_10_6_fat64 cp37-abi3-macosx_10_6_fat32 cp37-abi3-macosx_10_6_universal2 cp37-abi3-macosx_10_6_universal cp37-abi3-macosx_10_5_x86_64 cp37-abi3-macosx_10_5_intel cp37-abi3-macosx_10_5_fat64 cp37-abi3-macosx_10_5_fat32 cp37-abi3-macosx_10_5_universal2 cp37-abi3-macosx_10_5_universal cp37-abi3-macosx_10_4_x86_64 cp37-abi3-macosx_10_4_intel cp37-abi3-macosx_10_4_fat64 cp37-abi3-macosx_10_4_fat32 cp37-abi3-macosx_10_4_universal2 cp37-abi3-macosx_10_4_universal cp36-abi3-macosx_13_0_x86_64 cp36-abi3-macosx_13_0_intel cp36-abi3-macosx_13_0_fat64 cp36-abi3-macosx_13_0_fat32 cp36-abi3-macosx_13_0_universal2 cp36-abi3-macosx_13_0_universal cp36-abi3-macosx_12_0_x86_64 cp36-abi3-macosx_12_0_intel cp36-abi3-macosx_12_0_fat64 cp36-abi3-macosx_12_0_fat32 cp36-abi3-macosx_12_0_universal2 cp36-abi3-macosx_12_0_universal cp36-abi3-macosx_11_0_x86_64 cp36-abi3-macosx_11_0_intel cp36-abi3-macosx_11_0_fat64 cp36-abi3-macosx_11_0_fat32 cp36-abi3-macosx_11_0_universal2 cp36-abi3-macosx_11_0_universal cp36-abi3-macosx_10_16_x86_64 cp36-abi3-macosx_10_16_intel cp36-abi3-macosx_10_16_fat64 cp36-abi3-macosx_10_16_fat32 cp36-abi3-macosx_10_16_universal2 cp36-abi3-macosx_10_16_universal cp36-abi3-macosx_10_15_x86_64 cp36-abi3-macosx_10_15_intel cp36-abi3-macosx_10_15_fat64 cp36-abi3-macosx_10_15_fat32 cp36-abi3-macosx_10_15_universal2 cp36-abi3-macosx_10_15_universal cp36-abi3-macosx_10_14_x86_64 cp36-abi3-macosx_10_14_intel cp36-abi3-macosx_10_14_fat64 cp36-abi3-macosx_10_14_fat32 cp36-abi3-macosx_10_14_universal2 cp36-abi3-macosx_10_14_universal cp36-abi3-macosx_10_13_x86_64 cp36-abi3-macosx_10_13_intel cp36-abi3-macosx_10_13_fat64 cp36-abi3-macosx_10_13_fat32 cp36-abi3-macosx_10_13_universal2 cp36-abi3-macosx_10_13_universal cp36-abi3-macosx_10_12_x86_64 cp36-abi3-macosx_10_12_intel cp36-abi3-macosx_10_12_fat64 cp36-abi3-macosx_10_12_fat32 cp36-abi3-macosx_10_12_universal2 cp36-abi3-macosx_10_12_universal cp36-abi3-macosx_10_11_x86_64 cp36-abi3-macosx_10_11_intel cp36-abi3-macosx_10_11_fat64 cp36-abi3-macosx_10_11_fat32 cp36-abi3-macosx_10_11_universal2 cp36-abi3-macosx_10_11_universal cp36-abi3-macosx_10_10_x86_64 cp36-abi3-macosx_10_10_intel cp36-abi3-macosx_10_10_fat64 cp36-abi3-macosx_10_10_fat32 cp36-abi3-macosx_10_10_universal2 cp36-abi3-macosx_10_10_universal cp36-abi3-macosx_10_9_x86_64 cp36-abi3-macosx_10_9_intel cp36-abi3-macosx_10_9_fat64 cp36-abi3-macosx_10_9_fat32 cp36-abi3-macosx_10_9_universal2 cp36-abi3-macosx_10_9_universal cp36-abi3-macosx_10_8_x86_64 cp36-abi3-macosx_10_8_intel cp36-abi3-macosx_10_8_fat64 cp36-abi3-macosx_10_8_fat32 cp36-abi3-macosx_10_8_universal2 cp36-abi3-macosx_10_8_universal cp36-abi3-macosx_10_7_x86_64 cp36-abi3-macosx_10_7_intel cp36-abi3-macosx_10_7_fat64 cp36-abi3-macosx_10_7_fat32 cp36-abi3-macosx_10_7_universal2 cp36-abi3-macosx_10_7_universal cp36-abi3-macosx_10_6_x86_64 cp36-abi3-macosx_10_6_intel cp36-abi3-macosx_10_6_fat64 cp36-abi3-macosx_10_6_fat32 cp36-abi3-macosx_10_6_universal2 cp36-abi3-macosx_10_6_universal cp36-abi3-macosx_10_5_x86_64 cp36-abi3-macosx_10_5_intel cp36-abi3-macosx_10_5_fat64 cp36-abi3-macosx_10_5_fat32 cp36-abi3-macosx_10_5_universal2 cp36-abi3-macosx_10_5_universal cp36-abi3-macosx_10_4_x86_64 cp36-abi3-macosx_10_4_intel cp36-abi3-macosx_10_4_fat64 cp36-abi3-macosx_10_4_fat32 cp36-abi3-macosx_10_4_universal2 cp36-abi3-macosx_10_4_universal cp35-abi3-macosx_13_0_x86_64 cp35-abi3-macosx_13_0_intel cp35-abi3-macosx_13_0_fat64 cp35-abi3-macosx_13_0_fat32 cp35-abi3-macosx_13_0_universal2 cp35-abi3-macosx_13_0_universal cp35-abi3-macosx_12_0_x86_64 cp35-abi3-macosx_12_0_intel cp35-abi3-macosx_12_0_fat64 cp35-abi3-macosx_12_0_fat32 cp35-abi3-macosx_12_0_universal2 cp35-abi3-macosx_12_0_universal cp35-abi3-macosx_11_0_x86_64 cp35-abi3-macosx_11_0_intel cp35-abi3-macosx_11_0_fat64 cp35-abi3-macosx_11_0_fat32 cp35-abi3-macosx_11_0_universal2 cp35-abi3-macosx_11_0_universal cp35-abi3-macosx_10_16_x86_64 cp35-abi3-macosx_10_16_intel cp35-abi3-macosx_10_16_fat64 cp35-abi3-macosx_10_16_fat32 cp35-abi3-macosx_10_16_universal2 cp35-abi3-macosx_10_16_universal cp35-abi3-macosx_10_15_x86_64 cp35-abi3-macosx_10_15_intel cp35-abi3-macosx_10_15_fat64 cp35-abi3-macosx_10_15_fat32 cp35-abi3-macosx_10_15_universal2 cp35-abi3-macosx_10_15_universal cp35-abi3-macosx_10_14_x86_64 cp35-abi3-macosx_10_14_intel cp35-abi3-macosx_10_14_fat64 cp35-abi3-macosx_10_14_fat32 cp35-abi3-macosx_10_14_universal2 cp35-abi3-macosx_10_14_universal cp35-abi3-macosx_10_13_x86_64 cp35-abi3-macosx_10_13_intel cp35-abi3-macosx_10_13_fat64 cp35-abi3-macosx_10_13_fat32 cp35-abi3-macosx_10_13_universal2 cp35-abi3-macosx_10_13_universal cp35-abi3-macosx_10_12_x86_64 cp35-abi3-macosx_10_12_intel cp35-abi3-macosx_10_12_fat64 cp35-abi3-macosx_10_12_fat32 cp35-abi3-macosx_10_12_universal2 cp35-abi3-macosx_10_12_universal cp35-abi3-macosx_10_11_x86_64 cp35-abi3-macosx_10_11_intel cp35-abi3-macosx_10_11_fat64 cp35-abi3-macosx_10_11_fat32 cp35-abi3-macosx_10_11_universal2 cp35-abi3-macosx_10_11_universal cp35-abi3-macosx_10_10_x86_64 cp35-abi3-macosx_10_10_intel cp35-abi3-macosx_10_10_fat64 cp35-abi3-macosx_10_10_fat32 cp35-abi3-macosx_10_10_universal2 cp35-abi3-macosx_10_10_universal cp35-abi3-macosx_10_9_x86_64 cp35-abi3-macosx_10_9_intel cp35-abi3-macosx_10_9_fat64 cp35-abi3-macosx_10_9_fat32 cp35-abi3-macosx_10_9_universal2 cp35-abi3-macosx_10_9_universal cp35-abi3-macosx_10_8_x86_64 cp35-abi3-macosx_10_8_intel cp35-abi3-macosx_10_8_fat64 cp35-abi3-macosx_10_8_fat32 cp35-abi3-macosx_10_8_universal2 cp35-abi3-macosx_10_8_universal cp35-abi3-macosx_10_7_x86_64 cp35-abi3-macosx_10_7_intel cp35-abi3-macosx_10_7_fat64 cp35-abi3-macosx_10_7_fat32 cp35-abi3-macosx_10_7_universal2 cp35-abi3-macosx_10_7_universal cp35-abi3-macosx_10_6_x86_64 cp35-abi3-macosx_10_6_intel cp35-abi3-macosx_10_6_fat64 cp35-abi3-macosx_10_6_fat32 cp35-abi3-macosx_10_6_universal2 cp35-abi3-macosx_10_6_universal cp35-abi3-macosx_10_5_x86_64 cp35-abi3-macosx_10_5_intel cp35-abi3-macosx_10_5_fat64 cp35-abi3-macosx_10_5_fat32 cp35-abi3-macosx_10_5_universal2 cp35-abi3-macosx_10_5_universal cp35-abi3-macosx_10_4_x86_64 cp35-abi3-macosx_10_4_intel cp35-abi3-macosx_10_4_fat64 cp35-abi3-macosx_10_4_fat32 cp35-abi3-macosx_10_4_universal2 cp35-abi3-macosx_10_4_universal cp34-abi3-macosx_13_0_x86_64 cp34-abi3-macosx_13_0_intel cp34-abi3-macosx_13_0_fat64 cp34-abi3-macosx_13_0_fat32 cp34-abi3-macosx_13_0_universal2 cp34-abi3-macosx_13_0_universal cp34-abi3-macosx_12_0_x86_64 cp34-abi3-macosx_12_0_intel cp34-abi3-macosx_12_0_fat64 cp34-abi3-macosx_12_0_fat32 cp34-abi3-macosx_12_0_universal2 cp34-abi3-macosx_12_0_universal cp34-abi3-macosx_11_0_x86_64 cp34-abi3-macosx_11_0_intel cp34-abi3-macosx_11_0_fat64 cp34-abi3-macosx_11_0_fat32 cp34-abi3-macosx_11_0_universal2 cp34-abi3-macosx_11_0_universal cp34-abi3-macosx_10_16_x86_64 cp34-abi3-macosx_10_16_intel cp34-abi3-macosx_10_16_fat64 cp34-abi3-macosx_10_16_fat32 cp34-abi3-macosx_10_16_universal2 cp34-abi3-macosx_10_16_universal cp34-abi3-macosx_10_15_x86_64 cp34-abi3-macosx_10_15_intel cp34-abi3-macosx_10_15_fat64 cp34-abi3-macosx_10_15_fat32 cp34-abi3-macosx_10_15_universal2 cp34-abi3-macosx_10_15_universal cp34-abi3-macosx_10_14_x86_64 cp34-abi3-macosx_10_14_intel cp34-abi3-macosx_10_14_fat64 cp34-abi3-macosx_10_14_fat32 cp34-abi3-macosx_10_14_universal2 cp34-abi3-macosx_10_14_universal cp34-abi3-macosx_10_13_x86_64 cp34-abi3-macosx_10_13_intel cp34-abi3-macosx_10_13_fat64 cp34-abi3-macosx_10_13_fat32 cp34-abi3-macosx_10_13_universal2 cp34-abi3-macosx_10_13_universal cp34-abi3-macosx_10_12_x86_64 cp34-abi3-macosx_10_12_intel cp34-abi3-macosx_10_12_fat64 cp34-abi3-macosx_10_12_fat32 cp34-abi3-macosx_10_12_universal2 cp34-abi3-macosx_10_12_universal cp34-abi3-macosx_10_11_x86_64 cp34-abi3-macosx_10_11_intel cp34-abi3-macosx_10_11_fat64 cp34-abi3-macosx_10_11_fat32 cp34-abi3-macosx_10_11_universal2 cp34-abi3-macosx_10_11_universal cp34-abi3-macosx_10_10_x86_64 cp34-abi3-macosx_10_10_intel cp34-abi3-macosx_10_10_fat64 cp34-abi3-macosx_10_10_fat32 cp34-abi3-macosx_10_10_universal2 cp34-abi3-macosx_10_10_universal cp34-abi3-macosx_10_9_x86_64 cp34-abi3-macosx_10_9_intel cp34-abi3-macosx_10_9_fat64 cp34-abi3-macosx_10_9_fat32 cp34-abi3-macosx_10_9_universal2 cp34-abi3-macosx_10_9_universal cp34-abi3-macosx_10_8_x86_64 cp34-abi3-macosx_10_8_intel cp34-abi3-macosx_10_8_fat64 cp34-abi3-macosx_10_8_fat32 cp34-abi3-macosx_10_8_universal2 cp34-abi3-macosx_10_8_universal cp34-abi3-macosx_10_7_x86_64 cp34-abi3-macosx_10_7_intel cp34-abi3-macosx_10_7_fat64 cp34-abi3-macosx_10_7_fat32 cp34-abi3-macosx_10_7_universal2 cp34-abi3-macosx_10_7_universal cp34-abi3-macosx_10_6_x86_64 cp34-abi3-macosx_10_6_intel cp34-abi3-macosx_10_6_fat64 cp34-abi3-macosx_10_6_fat32 cp34-abi3-macosx_10_6_universal2 cp34-abi3-macosx_10_6_universal cp34-abi3-macosx_10_5_x86_64 cp34-abi3-macosx_10_5_intel cp34-abi3-macosx_10_5_fat64 cp34-abi3-macosx_10_5_fat32 cp34-abi3-macosx_10_5_universal2 cp34-abi3-macosx_10_5_universal cp34-abi3-macosx_10_4_x86_64 cp34-abi3-macosx_10_4_intel cp34-abi3-macosx_10_4_fat64 cp34-abi3-macosx_10_4_fat32 cp34-abi3-macosx_10_4_universal2 cp34-abi3-macosx_10_4_universal cp33-abi3-macosx_13_0_x86_64 cp33-abi3-macosx_13_0_intel cp33-abi3-macosx_13_0_fat64 cp33-abi3-macosx_13_0_fat32 cp33-abi3-macosx_13_0_universal2 cp33-abi3-macosx_13_0_universal cp33-abi3-macosx_12_0_x86_64 cp33-abi3-macosx_12_0_intel cp33-abi3-macosx_12_0_fat64 cp33-abi3-macosx_12_0_fat32 cp33-abi3-macosx_12_0_universal2 cp33-abi3-macosx_12_0_universal cp33-abi3-macosx_11_0_x86_64 cp33-abi3-macosx_11_0_intel cp33-abi3-macosx_11_0_fat64 cp33-abi3-macosx_11_0_fat32 cp33-abi3-macosx_11_0_universal2 cp33-abi3-macosx_11_0_universal cp33-abi3-macosx_10_16_x86_64 cp33-abi3-macosx_10_16_intel cp33-abi3-macosx_10_16_fat64 cp33-abi3-macosx_10_16_fat32 cp33-abi3-macosx_10_16_universal2 cp33-abi3-macosx_10_16_universal cp33-abi3-macosx_10_15_x86_64 cp33-abi3-macosx_10_15_intel cp33-abi3-macosx_10_15_fat64 cp33-abi3-macosx_10_15_fat32 cp33-abi3-macosx_10_15_universal2 cp33-abi3-macosx_10_15_universal cp33-abi3-macosx_10_14_x86_64 cp33-abi3-macosx_10_14_intel cp33-abi3-macosx_10_14_fat64 cp33-abi3-macosx_10_14_fat32 cp33-abi3-macosx_10_14_universal2 cp33-abi3-macosx_10_14_universal cp33-abi3-macosx_10_13_x86_64 cp33-abi3-macosx_10_13_intel cp33-abi3-macosx_10_13_fat64 cp33-abi3-macosx_10_13_fat32 cp33-abi3-macosx_10_13_universal2 cp33-abi3-macosx_10_13_universal cp33-abi3-macosx_10_12_x86_64 cp33-abi3-macosx_10_12_intel cp33-abi3-macosx_10_12_fat64 cp33-abi3-macosx_10_12_fat32 cp33-abi3-macosx_10_12_universal2 cp33-abi3-macosx_10_12_universal cp33-abi3-macosx_10_11_x86_64 cp33-abi3-macosx_10_11_intel cp33-abi3-macosx_10_11_fat64 cp33-abi3-macosx_10_11_fat32 cp33-abi3-macosx_10_11_universal2 cp33-abi3-macosx_10_11_universal cp33-abi3-macosx_10_10_x86_64 cp33-abi3-macosx_10_10_intel cp33-abi3-macosx_10_10_fat64 cp33-abi3-macosx_10_10_fat32 cp33-abi3-macosx_10_10_universal2 cp33-abi3-macosx_10_10_universal cp33-abi3-macosx_10_9_x86_64 cp33-abi3-macosx_10_9_intel cp33-abi3-macosx_10_9_fat64 cp33-abi3-macosx_10_9_fat32 cp33-abi3-macosx_10_9_universal2 cp33-abi3-macosx_10_9_universal cp33-abi3-macosx_10_8_x86_64 cp33-abi3-macosx_10_8_intel cp33-abi3-macosx_10_8_fat64 cp33-abi3-macosx_10_8_fat32 cp33-abi3-macosx_10_8_universal2 cp33-abi3-macosx_10_8_universal cp33-abi3-macosx_10_7_x86_64 cp33-abi3-macosx_10_7_intel cp33-abi3-macosx_10_7_fat64 cp33-abi3-macosx_10_7_fat32 cp33-abi3-macosx_10_7_universal2 cp33-abi3-macosx_10_7_universal cp33-abi3-macosx_10_6_x86_64 cp33-abi3-macosx_10_6_intel cp33-abi3-macosx_10_6_fat64 cp33-abi3-macosx_10_6_fat32 cp33-abi3-macosx_10_6_universal2 cp33-abi3-macosx_10_6_universal cp33-abi3-macosx_10_5_x86_64 cp33-abi3-macosx_10_5_intel cp33-abi3-macosx_10_5_fat64 cp33-abi3-macosx_10_5_fat32 cp33-abi3-macosx_10_5_universal2 cp33-abi3-macosx_10_5_universal cp33-abi3-macosx_10_4_x86_64 cp33-abi3-macosx_10_4_intel cp33-abi3-macosx_10_4_fat64 cp33-abi3-macosx_10_4_fat32 cp33-abi3-macosx_10_4_universal2 cp33-abi3-macosx_10_4_universal cp32-abi3-macosx_13_0_x86_64 cp32-abi3-macosx_13_0_intel cp32-abi3-macosx_13_0_fat64 cp32-abi3-macosx_13_0_fat32 cp32-abi3-macosx_13_0_universal2 cp32-abi3-macosx_13_0_universal cp32-abi3-macosx_12_0_x86_64 cp32-abi3-macosx_12_0_intel cp32-abi3-macosx_12_0_fat64 cp32-abi3-macosx_12_0_fat32 cp32-abi3-macosx_12_0_universal2 cp32-abi3-macosx_12_0_universal cp32-abi3-macosx_11_0_x86_64 cp32-abi3-macosx_11_0_intel cp32-abi3-macosx_11_0_fat64 cp32-abi3-macosx_11_0_fat32 cp32-abi3-macosx_11_0_universal2 cp32-abi3-macosx_11_0_universal cp32-abi3-macosx_10_16_x86_64 cp32-abi3-macosx_10_16_intel cp32-abi3-macosx_10_16_fat64 cp32-abi3-macosx_10_16_fat32 cp32-abi3-macosx_10_16_universal2 cp32-abi3-macosx_10_16_universal cp32-abi3-macosx_10_15_x86_64 cp32-abi3-macosx_10_15_intel cp32-abi3-macosx_10_15_fat64 cp32-abi3-macosx_10_15_fat32 cp32-abi3-macosx_10_15_universal2 cp32-abi3-macosx_10_15_universal cp32-abi3-macosx_10_14_x86_64 cp32-abi3-macosx_10_14_intel cp32-abi3-macosx_10_14_fat64 cp32-abi3-macosx_10_14_fat32 cp32-abi3-macosx_10_14_universal2 cp32-abi3-macosx_10_14_universal cp32-abi3-macosx_10_13_x86_64 cp32-abi3-macosx_10_13_intel cp32-abi3-macosx_10_13_fat64 cp32-abi3-macosx_10_13_fat32 cp32-abi3-macosx_10_13_universal2 cp32-abi3-macosx_10_13_universal cp32-abi3-macosx_10_12_x86_64 cp32-abi3-macosx_10_12_intel cp32-abi3-macosx_10_12_fat64 cp32-abi3-macosx_10_12_fat32 cp32-abi3-macosx_10_12_universal2 cp32-abi3-macosx_10_12_universal cp32-abi3-macosx_10_11_x86_64 cp32-abi3-macosx_10_11_intel cp32-abi3-macosx_10_11_fat64 cp32-abi3-macosx_10_11_fat32 cp32-abi3-macosx_10_11_universal2 cp32-abi3-macosx_10_11_universal cp32-abi3-macosx_10_10_x86_64 cp32-abi3-macosx_10_10_intel cp32-abi3-macosx_10_10_fat64 cp32-abi3-macosx_10_10_fat32 cp32-abi3-macosx_10_10_universal2 cp32-abi3-macosx_10_10_universal cp32-abi3-macosx_10_9_x86_64 cp32-abi3-macosx_10_9_intel cp32-abi3-macosx_10_9_fat64 cp32-abi3-macosx_10_9_fat32 cp32-abi3-macosx_10_9_universal2 cp32-abi3-macosx_10_9_universal cp32-abi3-macosx_10_8_x86_64 cp32-abi3-macosx_10_8_intel cp32-abi3-macosx_10_8_fat64 cp32-abi3-macosx_10_8_fat32 cp32-abi3-macosx_10_8_universal2 cp32-abi3-macosx_10_8_universal cp32-abi3-macosx_10_7_x86_64 cp32-abi3-macosx_10_7_intel cp32-abi3-macosx_10_7_fat64 cp32-abi3-macosx_10_7_fat32 cp32-abi3-macosx_10_7_universal2 cp32-abi3-macosx_10_7_universal cp32-abi3-macosx_10_6_x86_64 cp32-abi3-macosx_10_6_intel cp32-abi3-macosx_10_6_fat64 cp32-abi3-macosx_10_6_fat32 cp32-abi3-macosx_10_6_universal2 cp32-abi3-macosx_10_6_universal cp32-abi3-macosx_10_5_x86_64 cp32-abi3-macosx_10_5_intel cp32-abi3-macosx_10_5_fat64 cp32-abi3-macosx_10_5_fat32 cp32-abi3-macosx_10_5_universal2 cp32-abi3-macosx_10_5_universal cp32-abi3-macosx_10_4_x86_64 cp32-abi3-macosx_10_4_intel cp32-abi3-macosx_10_4_fat64 cp32-abi3-macosx_10_4_fat32 cp32-abi3-macosx_10_4_universal2 cp32-abi3-macosx_10_4_universal py39-none-macosx_13_0_x86_64 py39-none-macosx_13_0_intel py39-none-macosx_13_0_fat64 py39-none-macosx_13_0_fat32 py39-none-macosx_13_0_universal2 py39-none-macosx_13_0_universal py39-none-macosx_12_0_x86_64 py39-none-macosx_12_0_intel py39-none-macosx_12_0_fat64 py39-none-macosx_12_0_fat32 py39-none-macosx_12_0_universal2 py39-none-macosx_12_0_universal py39-none-macosx_11_0_x86_64 py39-none-macosx_11_0_intel py39-none-macosx_11_0_fat64 py39-none-macosx_11_0_fat32 py39-none-macosx_11_0_universal2 py39-none-macosx_11_0_universal py39-none-macosx_10_16_x86_64 py39-none-macosx_10_16_intel py39-none-macosx_10_16_fat64 py39-none-macosx_10_16_fat32 py39-none-macosx_10_16_universal2 py39-none-macosx_10_16_universal py39-none-macosx_10_15_x86_64 py39-none-macosx_10_15_intel py39-none-macosx_10_15_fat64 py39-none-macosx_10_15_fat32 py39-none-macosx_10_15_universal2 py39-none-macosx_10_15_universal py39-none-macosx_10_14_x86_64 py39-none-macosx_10_14_intel py39-none-macosx_10_14_fat64 py39-none-macosx_10_14_fat32 py39-none-macosx_10_14_universal2 py39-none-macosx_10_14_universal py39-none-macosx_10_13_x86_64 py39-none-macosx_10_13_intel py39-none-macosx_10_13_fat64 py39-none-macosx_10_13_fat32 py39-none-macosx_10_13_universal2 py39-none-macosx_10_13_universal py39-none-macosx_10_12_x86_64 py39-none-macosx_10_12_intel py39-none-macosx_10_12_fat64 py39-none-macosx_10_12_fat32 py39-none-macosx_10_12_universal2 py39-none-macosx_10_12_universal py39-none-macosx_10_11_x86_64 py39-none-macosx_10_11_intel py39-none-macosx_10_11_fat64 py39-none-macosx_10_11_fat32 py39-none-macosx_10_11_universal2 py39-none-macosx_10_11_universal py39-none-macosx_10_10_x86_64 py39-none-macosx_10_10_intel py39-none-macosx_10_10_fat64 py39-none-macosx_10_10_fat32 py39-none-macosx_10_10_universal2 py39-none-macosx_10_10_universal py39-none-macosx_10_9_x86_64 py39-none-macosx_10_9_intel py39-none-macosx_10_9_fat64 py39-none-macosx_10_9_fat32 py39-none-macosx_10_9_universal2 py39-none-macosx_10_9_universal py39-none-macosx_10_8_x86_64 py39-none-macosx_10_8_intel py39-none-macosx_10_8_fat64 py39-none-macosx_10_8_fat32 py39-none-macosx_10_8_universal2 py39-none-macosx_10_8_universal py39-none-macosx_10_7_x86_64 py39-none-macosx_10_7_intel py39-none-macosx_10_7_fat64 py39-none-macosx_10_7_fat32 py39-none-macosx_10_7_universal2 py39-none-macosx_10_7_universal py39-none-macosx_10_6_x86_64 py39-none-macosx_10_6_intel py39-none-macosx_10_6_fat64 py39-none-macosx_10_6_fat32 py39-none-macosx_10_6_universal2 py39-none-macosx_10_6_universal py39-none-macosx_10_5_x86_64 py39-none-macosx_10_5_intel py39-none-macosx_10_5_fat64 py39-none-macosx_10_5_fat32 py39-none-macosx_10_5_universal2 py39-none-macosx_10_5_universal py39-none-macosx_10_4_x86_64 py39-none-macosx_10_4_intel py39-none-macosx_10_4_fat64 py39-none-macosx_10_4_fat32 py39-none-macosx_10_4_universal2 py39-none-macosx_10_4_universal py3-none-macosx_13_0_x86_64 py3-none-macosx_13_0_intel py3-none-macosx_13_0_fat64 py3-none-macosx_13_0_fat32 py3-none-macosx_13_0_universal2 py3-none-macosx_13_0_universal py3-none-macosx_12_0_x86_64 py3-none-macosx_12_0_intel py3-none-macosx_12_0_fat64 py3-none-macosx_12_0_fat32 py3-none-macosx_12_0_universal2 py3-none-macosx_12_0_universal py3-none-macosx_11_0_x86_64 py3-none-macosx_11_0_intel py3-none-macosx_11_0_fat64 py3-none-macosx_11_0_fat32 py3-none-macosx_11_0_universal2 py3-none-macosx_11_0_universal py3-none-macosx_10_16_x86_64 py3-none-macosx_10_16_intel py3-none-macosx_10_16_fat64 py3-none-macosx_10_16_fat32 py3-none-macosx_10_16_universal2 py3-none-macosx_10_16_universal py3-none-macosx_10_15_x86_64 py3-none-macosx_10_15_intel py3-none-macosx_10_15_fat64 py3-none-macosx_10_15_fat32 py3-none-macosx_10_15_universal2 py3-none-macosx_10_15_universal py3-none-macosx_10_14_x86_64 py3-none-macosx_10_14_intel py3-none-macosx_10_14_fat64 py3-none-macosx_10_14_fat32 py3-none-macosx_10_14_universal2 py3-none-macosx_10_14_universal py3-none-macosx_10_13_x86_64 py3-none-macosx_10_13_intel py3-none-macosx_10_13_fat64 py3-none-macosx_10_13_fat32 py3-none-macosx_10_13_universal2 py3-none-macosx_10_13_universal py3-none-macosx_10_12_x86_64 py3-none-macosx_10_12_intel py3-none-macosx_10_12_fat64 py3-none-macosx_10_12_fat32 py3-none-macosx_10_12_universal2 py3-none-macosx_10_12_universal py3-none-macosx_10_11_x86_64 py3-none-macosx_10_11_intel py3-none-macosx_10_11_fat64 py3-none-macosx_10_11_fat32 py3-none-macosx_10_11_universal2 py3-none-macosx_10_11_universal py3-none-macosx_10_10_x86_64 py3-none-macosx_10_10_intel py3-none-macosx_10_10_fat64 py3-none-macosx_10_10_fat32 py3-none-macosx_10_10_universal2 py3-none-macosx_10_10_universal py3-none-macosx_10_9_x86_64 py3-none-macosx_10_9_intel py3-none-macosx_10_9_fat64 py3-none-macosx_10_9_fat32 py3-none-macosx_10_9_universal2 py3-none-macosx_10_9_universal py3-none-macosx_10_8_x86_64 py3-none-macosx_10_8_intel py3-none-macosx_10_8_fat64 py3-none-macosx_10_8_fat32 py3-none-macosx_10_8_universal2 py3-none-macosx_10_8_universal py3-none-macosx_10_7_x86_64 py3-none-macosx_10_7_intel py3-none-macosx_10_7_fat64 py3-none-macosx_10_7_fat32 py3-none-macosx_10_7_universal2 py3-none-macosx_10_7_universal py3-none-macosx_10_6_x86_64 py3-none-macosx_10_6_intel py3-none-macosx_10_6_fat64 py3-none-macosx_10_6_fat32 py3-none-macosx_10_6_universal2 py3-none-macosx_10_6_universal py3-none-macosx_10_5_x86_64 py3-none-macosx_10_5_intel py3-none-macosx_10_5_fat64 py3-none-macosx_10_5_fat32 py3-none-macosx_10_5_universal2 py3-none-macosx_10_5_universal py3-none-macosx_10_4_x86_64 py3-none-macosx_10_4_intel py3-none-macosx_10_4_fat64 py3-none-macosx_10_4_fat32 py3-none-macosx_10_4_universal2 py3-none-macosx_10_4_universal py38-none-macosx_13_0_x86_64 py38-none-macosx_13_0_intel py38-none-macosx_13_0_fat64 py38-none-macosx_13_0_fat32 py38-none-macosx_13_0_universal2 py38-none-macosx_13_0_universal py38-none-macosx_12_0_x86_64 py38-none-macosx_12_0_intel py38-none-macosx_12_0_fat64 py38-none-macosx_12_0_fat32 py38-none-macosx_12_0_universal2 py38-none-macosx_12_0_universal py38-none-macosx_11_0_x86_64 py38-none-macosx_11_0_intel py38-none-macosx_11_0_fat64 py38-none-macosx_11_0_fat32 py38-none-macosx_11_0_universal2 py38-none-macosx_11_0_universal py38-none-macosx_10_16_x86_64 py38-none-macosx_10_16_intel py38-none-macosx_10_16_fat64 py38-none-macosx_10_16_fat32 py38-none-macosx_10_16_universal2 py38-none-macosx_10_16_universal py38-none-macosx_10_15_x86_64 py38-none-macosx_10_15_intel py38-none-macosx_10_15_fat64 py38-none-macosx_10_15_fat32 py38-none-macosx_10_15_universal2 py38-none-macosx_10_15_universal py38-none-macosx_10_14_x86_64 py38-none-macosx_10_14_intel py38-none-macosx_10_14_fat64 py38-none-macosx_10_14_fat32 py38-none-macosx_10_14_universal2 py38-none-macosx_10_14_universal py38-none-macosx_10_13_x86_64 py38-none-macosx_10_13_intel py38-none-macosx_10_13_fat64 py38-none-macosx_10_13_fat32 py38-none-macosx_10_13_universal2 py38-none-macosx_10_13_universal py38-none-macosx_10_12_x86_64 py38-none-macosx_10_12_intel py38-none-macosx_10_12_fat64 py38-none-macosx_10_12_fat32 py38-none-macosx_10_12_universal2 py38-none-macosx_10_12_universal py38-none-macosx_10_11_x86_64 py38-none-macosx_10_11_intel py38-none-macosx_10_11_fat64 py38-none-macosx_10_11_fat32 py38-none-macosx_10_11_universal2 py38-none-macosx_10_11_universal py38-none-macosx_10_10_x86_64 py38-none-macosx_10_10_intel py38-none-macosx_10_10_fat64 py38-none-macosx_10_10_fat32 py38-none-macosx_10_10_universal2 py38-none-macosx_10_10_universal py38-none-macosx_10_9_x86_64 py38-none-macosx_10_9_intel py38-none-macosx_10_9_fat64 py38-none-macosx_10_9_fat32 py38-none-macosx_10_9_universal2 py38-none-macosx_10_9_universal py38-none-macosx_10_8_x86_64 py38-none-macosx_10_8_intel py38-none-macosx_10_8_fat64 py38-none-macosx_10_8_fat32 py38-none-macosx_10_8_universal2 py38-none-macosx_10_8_universal py38-none-macosx_10_7_x86_64 py38-none-macosx_10_7_intel py38-none-macosx_10_7_fat64 py38-none-macosx_10_7_fat32 py38-none-macosx_10_7_universal2 py38-none-macosx_10_7_universal py38-none-macosx_10_6_x86_64 py38-none-macosx_10_6_intel py38-none-macosx_10_6_fat64 py38-none-macosx_10_6_fat32 py38-none-macosx_10_6_universal2 py38-none-macosx_10_6_universal py38-none-macosx_10_5_x86_64 py38-none-macosx_10_5_intel py38-none-macosx_10_5_fat64 py38-none-macosx_10_5_fat32 py38-none-macosx_10_5_universal2 py38-none-macosx_10_5_universal py38-none-macosx_10_4_x86_64 py38-none-macosx_10_4_intel py38-none-macosx_10_4_fat64 py38-none-macosx_10_4_fat32 py38-none-macosx_10_4_universal2 py38-none-macosx_10_4_universal py37-none-macosx_13_0_x86_64 py37-none-macosx_13_0_intel py37-none-macosx_13_0_fat64 py37-none-macosx_13_0_fat32 py37-none-macosx_13_0_universal2 py37-none-macosx_13_0_universal py37-none-macosx_12_0_x86_64 py37-none-macosx_12_0_intel py37-none-macosx_12_0_fat64 py37-none-macosx_12_0_fat32 py37-none-macosx_12_0_universal2 py37-none-macosx_12_0_universal py37-none-macosx_11_0_x86_64 py37-none-macosx_11_0_intel py37-none-macosx_11_0_fat64 py37-none-macosx_11_0_fat32 py37-none-macosx_11_0_universal2 py37-none-macosx_11_0_universal py37-none-macosx_10_16_x86_64 py37-none-macosx_10_16_intel py37-none-macosx_10_16_fat64 py37-none-macosx_10_16_fat32 py37-none-macosx_10_16_universal2 py37-none-macosx_10_16_universal py37-none-macosx_10_15_x86_64 py37-none-macosx_10_15_intel py37-none-macosx_10_15_fat64 py37-none-macosx_10_15_fat32 py37-none-macosx_10_15_universal2 py37-none-macosx_10_15_universal py37-none-macosx_10_14_x86_64 py37-none-macosx_10_14_intel py37-none-macosx_10_14_fat64 py37-none-macosx_10_14_fat32 py37-none-macosx_10_14_universal2 py37-none-macosx_10_14_universal py37-none-macosx_10_13_x86_64 py37-none-macosx_10_13_intel py37-none-macosx_10_13_fat64 py37-none-macosx_10_13_fat32 py37-none-macosx_10_13_universal2 py37-none-macosx_10_13_universal py37-none-macosx_10_12_x86_64 py37-none-macosx_10_12_intel py37-none-macosx_10_12_fat64 py37-none-macosx_10_12_fat32 py37-none-macosx_10_12_universal2 py37-none-macosx_10_12_universal py37-none-macosx_10_11_x86_64 py37-none-macosx_10_11_intel py37-none-macosx_10_11_fat64 py37-none-macosx_10_11_fat32 py37-none-macosx_10_11_universal2 py37-none-macosx_10_11_universal py37-none-macosx_10_10_x86_64 py37-none-macosx_10_10_intel py37-none-macosx_10_10_fat64 py37-none-macosx_10_10_fat32 py37-none-macosx_10_10_universal2 py37-none-macosx_10_10_universal py37-none-macosx_10_9_x86_64 py37-none-macosx_10_9_intel py37-none-macosx_10_9_fat64 py37-none-macosx_10_9_fat32 py37-none-macosx_10_9_universal2 py37-none-macosx_10_9_universal py37-none-macosx_10_8_x86_64 py37-none-macosx_10_8_intel py37-none-macosx_10_8_fat64 py37-none-macosx_10_8_fat32 py37-none-macosx_10_8_universal2 py37-none-macosx_10_8_universal py37-none-macosx_10_7_x86_64 py37-none-macosx_10_7_intel py37-none-macosx_10_7_fat64 py37-none-macosx_10_7_fat32 py37-none-macosx_10_7_universal2 py37-none-macosx_10_7_universal py37-none-macosx_10_6_x86_64 py37-none-macosx_10_6_intel py37-none-macosx_10_6_fat64 py37-none-macosx_10_6_fat32 py37-none-macosx_10_6_universal2 py37-none-macosx_10_6_universal py37-none-macosx_10_5_x86_64 py37-none-macosx_10_5_intel py37-none-macosx_10_5_fat64 py37-none-macosx_10_5_fat32 py37-none-macosx_10_5_universal2 py37-none-macosx_10_5_universal py37-none-macosx_10_4_x86_64 py37-none-macosx_10_4_intel py37-none-macosx_10_4_fat64 py37-none-macosx_10_4_fat32 py37-none-macosx_10_4_universal2 py37-none-macosx_10_4_universal py36-none-macosx_13_0_x86_64 py36-none-macosx_13_0_intel py36-none-macosx_13_0_fat64 py36-none-macosx_13_0_fat32 py36-none-macosx_13_0_universal2 py36-none-macosx_13_0_universal py36-none-macosx_12_0_x86_64 py36-none-macosx_12_0_intel py36-none-macosx_12_0_fat64 py36-none-macosx_12_0_fat32 py36-none-macosx_12_0_universal2 py36-none-macosx_12_0_universal py36-none-macosx_11_0_x86_64 py36-none-macosx_11_0_intel py36-none-macosx_11_0_fat64 py36-none-macosx_11_0_fat32 py36-none-macosx_11_0_universal2 py36-none-macosx_11_0_universal py36-none-macosx_10_16_x86_64 py36-none-macosx_10_16_intel py36-none-macosx_10_16_fat64 py36-none-macosx_10_16_fat32 py36-none-macosx_10_16_universal2 py36-none-macosx_10_16_universal py36-none-macosx_10_15_x86_64 py36-none-macosx_10_15_intel py36-none-macosx_10_15_fat64 py36-none-macosx_10_15_fat32 py36-none-macosx_10_15_universal2 py36-none-macosx_10_15_universal py36-none-macosx_10_14_x86_64 py36-none-macosx_10_14_intel py36-none-macosx_10_14_fat64 py36-none-macosx_10_14_fat32 py36-none-macosx_10_14_universal2 py36-none-macosx_10_14_universal py36-none-macosx_10_13_x86_64 py36-none-macosx_10_13_intel py36-none-macosx_10_13_fat64 py36-none-macosx_10_13_fat32 py36-none-macosx_10_13_universal2 py36-none-macosx_10_13_universal py36-none-macosx_10_12_x86_64 py36-none-macosx_10_12_intel py36-none-macosx_10_12_fat64 py36-none-macosx_10_12_fat32 py36-none-macosx_10_12_universal2 py36-none-macosx_10_12_universal py36-none-macosx_10_11_x86_64 py36-none-macosx_10_11_intel py36-none-macosx_10_11_fat64 py36-none-macosx_10_11_fat32 py36-none-macosx_10_11_universal2 py36-none-macosx_10_11_universal py36-none-macosx_10_10_x86_64 py36-none-macosx_10_10_intel py36-none-macosx_10_10_fat64 py36-none-macosx_10_10_fat32 py36-none-macosx_10_10_universal2 py36-none-macosx_10_10_universal py36-none-macosx_10_9_x86_64 py36-none-macosx_10_9_intel py36-none-macosx_10_9_fat64 py36-none-macosx_10_9_fat32 py36-none-macosx_10_9_universal2 py36-none-macosx_10_9_universal py36-none-macosx_10_8_x86_64 py36-none-macosx_10_8_intel py36-none-macosx_10_8_fat64 py36-none-macosx_10_8_fat32 py36-none-macosx_10_8_universal2 py36-none-macosx_10_8_universal py36-none-macosx_10_7_x86_64 py36-none-macosx_10_7_intel py36-none-macosx_10_7_fat64 py36-none-macosx_10_7_fat32 py36-none-macosx_10_7_universal2 py36-none-macosx_10_7_universal py36-none-macosx_10_6_x86_64 py36-none-macosx_10_6_intel py36-none-macosx_10_6_fat64 py36-none-macosx_10_6_fat32 py36-none-macosx_10_6_universal2 py36-none-macosx_10_6_universal py36-none-macosx_10_5_x86_64 py36-none-macosx_10_5_intel py36-none-macosx_10_5_fat64 py36-none-macosx_10_5_fat32 py36-none-macosx_10_5_universal2 py36-none-macosx_10_5_universal py36-none-macosx_10_4_x86_64 py36-none-macosx_10_4_intel py36-none-macosx_10_4_fat64 py36-none-macosx_10_4_fat32 py36-none-macosx_10_4_universal2 py36-none-macosx_10_4_universal py35-none-macosx_13_0_x86_64 py35-none-macosx_13_0_intel py35-none-macosx_13_0_fat64 py35-none-macosx_13_0_fat32 py35-none-macosx_13_0_universal2 py35-none-macosx_13_0_universal py35-none-macosx_12_0_x86_64 py35-none-macosx_12_0_intel py35-none-macosx_12_0_fat64 py35-none-macosx_12_0_fat32 py35-none-macosx_12_0_universal2 py35-none-macosx_12_0_universal py35-none-macosx_11_0_x86_64 py35-none-macosx_11_0_intel py35-none-macosx_11_0_fat64 py35-none-macosx_11_0_fat32 py35-none-macosx_11_0_universal2 py35-none-macosx_11_0_universal py35-none-macosx_10_16_x86_64 py35-none-macosx_10_16_intel py35-none-macosx_10_16_fat64 py35-none-macosx_10_16_fat32 py35-none-macosx_10_16_universal2 py35-none-macosx_10_16_universal py35-none-macosx_10_15_x86_64 py35-none-macosx_10_15_intel py35-none-macosx_10_15_fat64 py35-none-macosx_10_15_fat32 py35-none-macosx_10_15_universal2 py35-none-macosx_10_15_universal py35-none-macosx_10_14_x86_64 py35-none-macosx_10_14_intel py35-none-macosx_10_14_fat64 py35-none-macosx_10_14_fat32 py35-none-macosx_10_14_universal2 py35-none-macosx_10_14_universal py35-none-macosx_10_13_x86_64 py35-none-macosx_10_13_intel py35-none-macosx_10_13_fat64 py35-none-macosx_10_13_fat32 py35-none-macosx_10_13_universal2 py35-none-macosx_10_13_universal py35-none-macosx_10_12_x86_64 py35-none-macosx_10_12_intel py35-none-macosx_10_12_fat64 py35-none-macosx_10_12_fat32 py35-none-macosx_10_12_universal2 py35-none-macosx_10_12_universal py35-none-macosx_10_11_x86_64 py35-none-macosx_10_11_intel py35-none-macosx_10_11_fat64 py35-none-macosx_10_11_fat32 py35-none-macosx_10_11_universal2 py35-none-macosx_10_11_universal py35-none-macosx_10_10_x86_64 py35-none-macosx_10_10_intel py35-none-macosx_10_10_fat64 py35-none-macosx_10_10_fat32 py35-none-macosx_10_10_universal2 py35-none-macosx_10_10_universal py35-none-macosx_10_9_x86_64 py35-none-macosx_10_9_intel py35-none-macosx_10_9_fat64 py35-none-macosx_10_9_fat32 py35-none-macosx_10_9_universal2 py35-none-macosx_10_9_universal py35-none-macosx_10_8_x86_64 py35-none-macosx_10_8_intel py35-none-macosx_10_8_fat64 py35-none-macosx_10_8_fat32 py35-none-macosx_10_8_universal2 py35-none-macosx_10_8_universal py35-none-macosx_10_7_x86_64 py35-none-macosx_10_7_intel py35-none-macosx_10_7_fat64 py35-none-macosx_10_7_fat32 py35-none-macosx_10_7_universal2 py35-none-macosx_10_7_universal py35-none-macosx_10_6_x86_64 py35-none-macosx_10_6_intel py35-none-macosx_10_6_fat64 py35-none-macosx_10_6_fat32 py35-none-macosx_10_6_universal2 py35-none-macosx_10_6_universal py35-none-macosx_10_5_x86_64 py35-none-macosx_10_5_intel py35-none-macosx_10_5_fat64 py35-none-macosx_10_5_fat32 py35-none-macosx_10_5_universal2 py35-none-macosx_10_5_universal py35-none-macosx_10_4_x86_64 py35-none-macosx_10_4_intel py35-none-macosx_10_4_fat64 py35-none-macosx_10_4_fat32 py35-none-macosx_10_4_universal2 py35-none-macosx_10_4_universal py34-none-macosx_13_0_x86_64 py34-none-macosx_13_0_intel py34-none-macosx_13_0_fat64 py34-none-macosx_13_0_fat32 py34-none-macosx_13_0_universal2 py34-none-macosx_13_0_universal py34-none-macosx_12_0_x86_64 py34-none-macosx_12_0_intel py34-none-macosx_12_0_fat64 py34-none-macosx_12_0_fat32 py34-none-macosx_12_0_universal2 py34-none-macosx_12_0_universal py34-none-macosx_11_0_x86_64 py34-none-macosx_11_0_intel py34-none-macosx_11_0_fat64 py34-none-macosx_11_0_fat32 py34-none-macosx_11_0_universal2 py34-none-macosx_11_0_universal py34-none-macosx_10_16_x86_64 py34-none-macosx_10_16_intel py34-none-macosx_10_16_fat64 py34-none-macosx_10_16_fat32 py34-none-macosx_10_16_universal2 py34-none-macosx_10_16_universal py34-none-macosx_10_15_x86_64 py34-none-macosx_10_15_intel py34-none-macosx_10_15_fat64 py34-none-macosx_10_15_fat32 py34-none-macosx_10_15_universal2 py34-none-macosx_10_15_universal py34-none-macosx_10_14_x86_64 py34-none-macosx_10_14_intel py34-none-macosx_10_14_fat64 py34-none-macosx_10_14_fat32 py34-none-macosx_10_14_universal2 py34-none-macosx_10_14_universal py34-none-macosx_10_13_x86_64 py34-none-macosx_10_13_intel py34-none-macosx_10_13_fat64 py34-none-macosx_10_13_fat32 py34-none-macosx_10_13_universal2 py34-none-macosx_10_13_universal py34-none-macosx_10_12_x86_64 py34-none-macosx_10_12_intel py34-none-macosx_10_12_fat64 py34-none-macosx_10_12_fat32 py34-none-macosx_10_12_universal2 py34-none-macosx_10_12_universal py34-none-macosx_10_11_x86_64 py34-none-macosx_10_11_intel py34-none-macosx_10_11_fat64 py34-none-macosx_10_11_fat32 py34-none-macosx_10_11_universal2 py34-none-macosx_10_11_universal py34-none-macosx_10_10_x86_64 py34-none-macosx_10_10_intel py34-none-macosx_10_10_fat64 py34-none-macosx_10_10_fat32 py34-none-macosx_10_10_universal2 py34-none-macosx_10_10_universal py34-none-macosx_10_9_x86_64 py34-none-macosx_10_9_intel py34-none-macosx_10_9_fat64 py34-none-macosx_10_9_fat32 py34-none-macosx_10_9_universal2 py34-none-macosx_10_9_universal py34-none-macosx_10_8_x86_64 py34-none-macosx_10_8_intel py34-none-macosx_10_8_fat64 py34-none-macosx_10_8_fat32 py34-none-macosx_10_8_universal2 py34-none-macosx_10_8_universal py34-none-macosx_10_7_x86_64 py34-none-macosx_10_7_intel py34-none-macosx_10_7_fat64 py34-none-macosx_10_7_fat32 py34-none-macosx_10_7_universal2 py34-none-macosx_10_7_universal py34-none-macosx_10_6_x86_64 py34-none-macosx_10_6_intel py34-none-macosx_10_6_fat64 py34-none-macosx_10_6_fat32 py34-none-macosx_10_6_universal2 py34-none-macosx_10_6_universal py34-none-macosx_10_5_x86_64 py34-none-macosx_10_5_intel py34-none-macosx_10_5_fat64 py34-none-macosx_10_5_fat32 py34-none-macosx_10_5_universal2 py34-none-macosx_10_5_universal py34-none-macosx_10_4_x86_64 py34-none-macosx_10_4_intel py34-none-macosx_10_4_fat64 py34-none-macosx_10_4_fat32 py34-none-macosx_10_4_universal2 py34-none-macosx_10_4_universal py33-none-macosx_13_0_x86_64 py33-none-macosx_13_0_intel py33-none-macosx_13_0_fat64 py33-none-macosx_13_0_fat32 py33-none-macosx_13_0_universal2 py33-none-macosx_13_0_universal py33-none-macosx_12_0_x86_64 py33-none-macosx_12_0_intel py33-none-macosx_12_0_fat64 py33-none-macosx_12_0_fat32 py33-none-macosx_12_0_universal2 py33-none-macosx_12_0_universal py33-none-macosx_11_0_x86_64 py33-none-macosx_11_0_intel py33-none-macosx_11_0_fat64 py33-none-macosx_11_0_fat32 py33-none-macosx_11_0_universal2 py33-none-macosx_11_0_universal py33-none-macosx_10_16_x86_64 py33-none-macosx_10_16_intel py33-none-macosx_10_16_fat64 py33-none-macosx_10_16_fat32 py33-none-macosx_10_16_universal2 py33-none-macosx_10_16_universal py33-none-macosx_10_15_x86_64 py33-none-macosx_10_15_intel py33-none-macosx_10_15_fat64 py33-none-macosx_10_15_fat32 py33-none-macosx_10_15_universal2 py33-none-macosx_10_15_universal py33-none-macosx_10_14_x86_64 py33-none-macosx_10_14_intel py33-none-macosx_10_14_fat64 py33-none-macosx_10_14_fat32 py33-none-macosx_10_14_universal2 py33-none-macosx_10_14_universal py33-none-macosx_10_13_x86_64 py33-none-macosx_10_13_intel py33-none-macosx_10_13_fat64 py33-none-macosx_10_13_fat32 py33-none-macosx_10_13_universal2 py33-none-macosx_10_13_universal py33-none-macosx_10_12_x86_64 py33-none-macosx_10_12_intel py33-none-macosx_10_12_fat64 py33-none-macosx_10_12_fat32 py33-none-macosx_10_12_universal2 py33-none-macosx_10_12_universal py33-none-macosx_10_11_x86_64 py33-none-macosx_10_11_intel py33-none-macosx_10_11_fat64 py33-none-macosx_10_11_fat32 py33-none-macosx_10_11_universal2 py33-none-macosx_10_11_universal py33-none-macosx_10_10_x86_64 py33-none-macosx_10_10_intel py33-none-macosx_10_10_fat64 py33-none-macosx_10_10_fat32 py33-none-macosx_10_10_universal2 py33-none-macosx_10_10_universal py33-none-macosx_10_9_x86_64 py33-none-macosx_10_9_intel py33-none-macosx_10_9_fat64 py33-none-macosx_10_9_fat32 py33-none-macosx_10_9_universal2 py33-none-macosx_10_9_universal py33-none-macosx_10_8_x86_64 py33-none-macosx_10_8_intel py33-none-macosx_10_8_fat64 py33-none-macosx_10_8_fat32 py33-none-macosx_10_8_universal2 py33-none-macosx_10_8_universal py33-none-macosx_10_7_x86_64 py33-none-macosx_10_7_intel py33-none-macosx_10_7_fat64 py33-none-macosx_10_7_fat32 py33-none-macosx_10_7_universal2 py33-none-macosx_10_7_universal py33-none-macosx_10_6_x86_64 py33-none-macosx_10_6_intel py33-none-macosx_10_6_fat64 py33-none-macosx_10_6_fat32 py33-none-macosx_10_6_universal2 py33-none-macosx_10_6_universal py33-none-macosx_10_5_x86_64 py33-none-macosx_10_5_intel py33-none-macosx_10_5_fat64 py33-none-macosx_10_5_fat32 py33-none-macosx_10_5_universal2 py33-none-macosx_10_5_universal py33-none-macosx_10_4_x86_64 py33-none-macosx_10_4_intel py33-none-macosx_10_4_fat64 py33-none-macosx_10_4_fat32 py33-none-macosx_10_4_universal2 py33-none-macosx_10_4_universal py32-none-macosx_13_0_x86_64 py32-none-macosx_13_0_intel py32-none-macosx_13_0_fat64 py32-none-macosx_13_0_fat32 py32-none-macosx_13_0_universal2 py32-none-macosx_13_0_universal py32-none-macosx_12_0_x86_64 py32-none-macosx_12_0_intel py32-none-macosx_12_0_fat64 py32-none-macosx_12_0_fat32 py32-none-macosx_12_0_universal2 py32-none-macosx_12_0_universal py32-none-macosx_11_0_x86_64 py32-none-macosx_11_0_intel py32-none-macosx_11_0_fat64 py32-none-macosx_11_0_fat32 py32-none-macosx_11_0_universal2 py32-none-macosx_11_0_universal py32-none-macosx_10_16_x86_64 py32-none-macosx_10_16_intel py32-none-macosx_10_16_fat64 py32-none-macosx_10_16_fat32 py32-none-macosx_10_16_universal2 py32-none-macosx_10_16_universal py32-none-macosx_10_15_x86_64 py32-none-macosx_10_15_intel py32-none-macosx_10_15_fat64 py32-none-macosx_10_15_fat32 py32-none-macosx_10_15_universal2 py32-none-macosx_10_15_universal py32-none-macosx_10_14_x86_64 py32-none-macosx_10_14_intel py32-none-macosx_10_14_fat64 py32-none-macosx_10_14_fat32 py32-none-macosx_10_14_universal2 py32-none-macosx_10_14_universal py32-none-macosx_10_13_x86_64 py32-none-macosx_10_13_intel py32-none-macosx_10_13_fat64 py32-none-macosx_10_13_fat32 py32-none-macosx_10_13_universal2 py32-none-macosx_10_13_universal py32-none-macosx_10_12_x86_64 py32-none-macosx_10_12_intel py32-none-macosx_10_12_fat64 py32-none-macosx_10_12_fat32 py32-none-macosx_10_12_universal2 py32-none-macosx_10_12_universal py32-none-macosx_10_11_x86_64 py32-none-macosx_10_11_intel py32-none-macosx_10_11_fat64 py32-none-macosx_10_11_fat32 py32-none-macosx_10_11_universal2 py32-none-macosx_10_11_universal py32-none-macosx_10_10_x86_64 py32-none-macosx_10_10_intel py32-none-macosx_10_10_fat64 py32-none-macosx_10_10_fat32 py32-none-macosx_10_10_universal2 py32-none-macosx_10_10_universal py32-none-macosx_10_9_x86_64 py32-none-macosx_10_9_intel py32-none-macosx_10_9_fat64 py32-none-macosx_10_9_fat32 py32-none-macosx_10_9_universal2 py32-none-macosx_10_9_universal py32-none-macosx_10_8_x86_64 py32-none-macosx_10_8_intel py32-none-macosx_10_8_fat64 py32-none-macosx_10_8_fat32 py32-none-macosx_10_8_universal2 py32-none-macosx_10_8_universal py32-none-macosx_10_7_x86_64 py32-none-macosx_10_7_intel py32-none-macosx_10_7_fat64 py32-none-macosx_10_7_fat32 py32-none-macosx_10_7_universal2 py32-none-macosx_10_7_universal py32-none-macosx_10_6_x86_64 py32-none-macosx_10_6_intel py32-none-macosx_10_6_fat64 py32-none-macosx_10_6_fat32 py32-none-macosx_10_6_universal2 py32-none-macosx_10_6_universal py32-none-macosx_10_5_x86_64 py32-none-macosx_10_5_intel py32-none-macosx_10_5_fat64 py32-none-macosx_10_5_fat32 py32-none-macosx_10_5_universal2 py32-none-macosx_10_5_universal py32-none-macosx_10_4_x86_64 py32-none-macosx_10_4_intel py32-none-macosx_10_4_fat64 py32-none-macosx_10_4_fat32 py32-none-macosx_10_4_universal2 py32-none-macosx_10_4_universal py31-none-macosx_13_0_x86_64 py31-none-macosx_13_0_intel py31-none-macosx_13_0_fat64 py31-none-macosx_13_0_fat32 py31-none-macosx_13_0_universal2 py31-none-macosx_13_0_universal py31-none-macosx_12_0_x86_64 py31-none-macosx_12_0_intel py31-none-macosx_12_0_fat64 py31-none-macosx_12_0_fat32 py31-none-macosx_12_0_universal2 py31-none-macosx_12_0_universal py31-none-macosx_11_0_x86_64 py31-none-macosx_11_0_intel py31-none-macosx_11_0_fat64 py31-none-macosx_11_0_fat32 py31-none-macosx_11_0_universal2 py31-none-macosx_11_0_universal py31-none-macosx_10_16_x86_64 py31-none-macosx_10_16_intel py31-none-macosx_10_16_fat64 py31-none-macosx_10_16_fat32 py31-none-macosx_10_16_universal2 py31-none-macosx_10_16_universal py31-none-macosx_10_15_x86_64 py31-none-macosx_10_15_intel py31-none-macosx_10_15_fat64 py31-none-macosx_10_15_fat32 py31-none-macosx_10_15_universal2 py31-none-macosx_10_15_universal py31-none-macosx_10_14_x86_64 py31-none-macosx_10_14_intel py31-none-macosx_10_14_fat64 py31-none-macosx_10_14_fat32 py31-none-macosx_10_14_universal2 py31-none-macosx_10_14_universal py31-none-macosx_10_13_x86_64 py31-none-macosx_10_13_intel py31-none-macosx_10_13_fat64 py31-none-macosx_10_13_fat32 py31-none-macosx_10_13_universal2 py31-none-macosx_10_13_universal py31-none-macosx_10_12_x86_64 py31-none-macosx_10_12_intel py31-none-macosx_10_12_fat64 py31-none-macosx_10_12_fat32 py31-none-macosx_10_12_universal2 py31-none-macosx_10_12_universal py31-none-macosx_10_11_x86_64 py31-none-macosx_10_11_intel py31-none-macosx_10_11_fat64 py31-none-macosx_10_11_fat32 py31-none-macosx_10_11_universal2 py31-none-macosx_10_11_universal py31-none-macosx_10_10_x86_64 py31-none-macosx_10_10_intel py31-none-macosx_10_10_fat64 py31-none-macosx_10_10_fat32 py31-none-macosx_10_10_universal2 py31-none-macosx_10_10_universal py31-none-macosx_10_9_x86_64 py31-none-macosx_10_9_intel py31-none-macosx_10_9_fat64 py31-none-macosx_10_9_fat32 py31-none-macosx_10_9_universal2 py31-none-macosx_10_9_universal py31-none-macosx_10_8_x86_64 py31-none-macosx_10_8_intel py31-none-macosx_10_8_fat64 py31-none-macosx_10_8_fat32 py31-none-macosx_10_8_universal2 py31-none-macosx_10_8_universal py31-none-macosx_10_7_x86_64 py31-none-macosx_10_7_intel py31-none-macosx_10_7_fat64 py31-none-macosx_10_7_fat32 py31-none-macosx_10_7_universal2 py31-none-macosx_10_7_universal py31-none-macosx_10_6_x86_64 py31-none-macosx_10_6_intel py31-none-macosx_10_6_fat64 py31-none-macosx_10_6_fat32 py31-none-macosx_10_6_universal2 py31-none-macosx_10_6_universal py31-none-macosx_10_5_x86_64 py31-none-macosx_10_5_intel py31-none-macosx_10_5_fat64 py31-none-macosx_10_5_fat32 py31-none-macosx_10_5_universal2 py31-none-macosx_10_5_universal py31-none-macosx_10_4_x86_64 py31-none-macosx_10_4_intel py31-none-macosx_10_4_fat64 py31-none-macosx_10_4_fat32 py31-none-macosx_10_4_universal2 py31-none-macosx_10_4_universal py30-none-macosx_13_0_x86_64 py30-none-macosx_13_0_intel py30-none-macosx_13_0_fat64 py30-none-macosx_13_0_fat32 py30-none-macosx_13_0_universal2 py30-none-macosx_13_0_universal py30-none-macosx_12_0_x86_64 py30-none-macosx_12_0_intel py30-none-macosx_12_0_fat64 py30-none-macosx_12_0_fat32 py30-none-macosx_12_0_universal2 py30-none-macosx_12_0_universal py30-none-macosx_11_0_x86_64 py30-none-macosx_11_0_intel py30-none-macosx_11_0_fat64 py30-none-macosx_11_0_fat32 py30-none-macosx_11_0_universal2 py30-none-macosx_11_0_universal py30-none-macosx_10_16_x86_64 py30-none-macosx_10_16_intel py30-none-macosx_10_16_fat64 py30-none-macosx_10_16_fat32 py30-none-macosx_10_16_universal2 py30-none-macosx_10_16_universal py30-none-macosx_10_15_x86_64 py30-none-macosx_10_15_intel py30-none-macosx_10_15_fat64 py30-none-macosx_10_15_fat32 py30-none-macosx_10_15_universal2 py30-none-macosx_10_15_universal py30-none-macosx_10_14_x86_64 py30-none-macosx_10_14_intel py30-none-macosx_10_14_fat64 py30-none-macosx_10_14_fat32 py30-none-macosx_10_14_universal2 py30-none-macosx_10_14_universal py30-none-macosx_10_13_x86_64 py30-none-macosx_10_13_intel py30-none-macosx_10_13_fat64 py30-none-macosx_10_13_fat32 py30-none-macosx_10_13_universal2 py30-none-macosx_10_13_universal py30-none-macosx_10_12_x86_64 py30-none-macosx_10_12_intel py30-none-macosx_10_12_fat64 py30-none-macosx_10_12_fat32 py30-none-macosx_10_12_universal2 py30-none-macosx_10_12_universal py30-none-macosx_10_11_x86_64 py30-none-macosx_10_11_intel py30-none-macosx_10_11_fat64 py30-none-macosx_10_11_fat32 py30-none-macosx_10_11_universal2 py30-none-macosx_10_11_universal py30-none-macosx_10_10_x86_64 py30-none-macosx_10_10_intel py30-none-macosx_10_10_fat64 py30-none-macosx_10_10_fat32 py30-none-macosx_10_10_universal2 py30-none-macosx_10_10_universal py30-none-macosx_10_9_x86_64 py30-none-macosx_10_9_intel py30-none-macosx_10_9_fat64 py30-none-macosx_10_9_fat32 py30-none-macosx_10_9_universal2 py30-none-macosx_10_9_universal py30-none-macosx_10_8_x86_64 py30-none-macosx_10_8_intel py30-none-macosx_10_8_fat64 py30-none-macosx_10_8_fat32 py30-none-macosx_10_8_universal2 py30-none-macosx_10_8_universal py30-none-macosx_10_7_x86_64 py30-none-macosx_10_7_intel py30-none-macosx_10_7_fat64 py30-none-macosx_10_7_fat32 py30-none-macosx_10_7_universal2 py30-none-macosx_10_7_universal py30-none-macosx_10_6_x86_64 py30-none-macosx_10_6_intel py30-none-macosx_10_6_fat64 py30-none-macosx_10_6_fat32 py30-none-macosx_10_6_universal2 py30-none-macosx_10_6_universal py30-none-macosx_10_5_x86_64 py30-none-macosx_10_5_intel py30-none-macosx_10_5_fat64 py30-none-macosx_10_5_fat32 py30-none-macosx_10_5_universal2 py30-none-macosx_10_5_universal py30-none-macosx_10_4_x86_64 py30-none-macosx_10_4_intel py30-none-macosx_10_4_fat64 py30-none-macosx_10_4_fat32 py30-none-macosx_10_4_universal2 py30-none-macosx_10_4_universal cp39-none-any py39-none-any py3-none-any py38-none-any py37-none-any py36-none-any py35-none-any py34-none-any py33-none-any py32-none-any py31-none-any py30-none-any

this is the output of the command python3.9 -m pip debug --verbose

DrorHaor commented 1 year ago

@dbickson just to make sure, pip still can't find the package. and when running pip install fastdup I get: Collecting fastdup Using cached fastdup-1.21-cp39-cp39-macosx_10_14_x86_64.whl (66.6 MB) Collecting pandas (from fastdup) Using cached pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl (11.8 MB) Collecting numpy (from fastdup) Using cached numpy-1.25.0-cp39-cp39-macosx_10_9_x86_64.whl (20.1 MB) Collecting tqdm (from fastdup) Using cached tqdm-4.65.0-py3-none-any.whl (77 kB) Collecting pyyaml (from fastdup) Using cached PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl (197 kB) Collecting requests==2.28.1 (from fastdup) Using cached requests-2.28.1-py3-none-any.whl (62 kB) Collecting packaging (from fastdup) Using cached packaging-23.1-py3-none-any.whl (48 kB) Collecting sentry-sdk (from fastdup) Using cached sentry_sdk-1.26.0-py2.py3-none-any.whl (209 kB) INFO: pip is looking at multiple versions of fastdup to determine which version is compatible with other requirements. This could take a while. Collecting fastdup Using cached fastdup-1.15-cp39-cp39-macosx_10_14_x86_64.whl (66.6 MB) Using cached fastdup-1.13-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) Using cached fastdup-1.11-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) Using cached fastdup-1.10-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) Using cached fastdup-1.9-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) Using cached fastdup-1.8-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) Using cached fastdup-1.7-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) INFO: pip is looking at multiple versions of fastdup to determine which version is compatible with other requirements. This could take a while. Using cached fastdup-1.6-cp39-cp39-macosx_10_14_x86_64.whl (66.5 MB) ERROR: Cannot install fastdup==1.10, fastdup==1.11, fastdup==1.13, fastdup==1.15, fastdup==1.21, fastdup==1.6, fastdup==1.7, fastdup==1.8 and fastdup==1.9 because these package versions have conflicting dependencies.

The conflict is caused by: fastdup 1.21 depends on opencv-python-headless==4.1.2.30 fastdup 1.15 depends on opencv-python-headless==4.1.2.30 fastdup 1.13 depends on opencv-python-headless==4.1.2.30 fastdup 1.11 depends on opencv-python-headless==4.1.2.30 fastdup 1.10 depends on opencv-python-headless==4.1.2.30 fastdup 1.9 depends on opencv-python-headless==4.1.2.30 fastdup 1.8 depends on opencv-python-headless==4.1.2.30 fastdup 1.7 depends on opencv-python-headless==4.1.2.30 fastdup 1.6 depends on opencv-python-headless==4.1.2.30

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

dbickson commented 1 year ago

Apologies for the issue. Can you try to download the release from our github: https://github.com/visual-layer/fastdup/releases/tag/v1.22macos13.0_x86_64 and then pip install -U [ name of the wheel ]

DrorHaor commented 1 year ago

Hi @dbickson . This install works now, but when running the code I see there is a problem that it can't find the folder (which exists) :

import fastdup fd = fastdup.create('pbd_213_I_Frame/') fd.run()

Here is the code

Here is the output: Traceback (most recent call last): File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/sentry.py", line 132, in inner_function ret = func(*args, *kwargs) File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/fastdup_controller.py", line 495, in run self._init_run(input_dir, annotations, subset, embeddings, data_type, overwrite, fastdup_kwargs) File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/fastdup_controller.py", line 143, in _init_run self._verify_fastdup_run_args(input_dir, self._work_dir, df_annot, subset, self._dtype, embeddings) File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/fastdup_controller.py", line 1144, in _verify_fastdup_run_args assert pre_calc_features is not None or (isinstance(input_dir, list) or isinstance(input_dir, str) or AssertionError: input_dir must be provided and be a string/pathlib.Path or a list of strings/pathlib.Path Traceback (most recent call last): File "", line 1, in File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/engine.py", line 157, in run return super().run(annotations=annotations, input_dir=input_dir, subset=subset, data_type=data_type, File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/sentry.py", line 138, in inner_function raise ex File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/sentry.py", line 132, in inner_function ret = func(args, **kwargs) File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/fastdup_controller.py", line 495, in run self._init_run(input_dir, annotations, subset, embeddings, data_type, overwrite, fastdup_kwargs) File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/fastdup_controller.py", line 143, in _init_run self._verify_fastdup_run_args(input_dir, self._work_dir, df_annot, subset, self._dtype, embeddings) File "/Users/drorhaor/seetree-envs/CLIP39/lib/python3.9/site-packages/fastdup/fastdup_controller.py", line 1144, in _verify_fastdup_run_args assert pre_calc_features is not None or (isinstance(input_dir, list) or isinstance(input_dir, str) or AssertionError: input_dir must be provided and be a string/pathlib.Path or a list of strings/pathlib.Path

dbickson commented 1 year ago

HI @DrorHaor you need to provide both input_dir and work_dir, work_dir is where you want the output. The first argument is work_dir, so you gave only work_dir without input_dir.

DrorHaor commented 1 year ago

Thanks. Now it works fine

ashrielbrian commented 10 months ago

@dbickson Running with 1.22 now gives the following error:

Failed with Unknown Exception <class 'RuntimeError'> Reason: fastdup detected your are running an old version 1.22 (10 versions or more vs. the latest) please upgrade fastdup
fastdup detected your are running an old version 1.22 (10 versions or more vs. the latest) please upgrade fastdup

And naturally trying to install 1.34 gives the errors above.

dbickson commented 10 months ago

Hi @ashrielbrian please send again the full error you are getting with 1.34 and the output of pip debug --verbose

ashrielbrian commented 10 months ago

Here you go @dbickson - Install fastdup==1.34, Intel Mac 13.4.1

(flyte) briant@Ashriels-MacBook-Pro autolabel % pip install -U fastdup==1.34   
Collecting fastdup==1.34
  Obtaining dependency information for fastdup==1.34 from https://files.pythonhosted.org/packages/08/92/cfa8b602bd60f2b7b2b01ccdc3be3d5311b5338746278959f9e2e09b3476/fastdup-1.34-cp39-cp39-macosx_10_14_x86_64.whl.metadata
  Using cached fastdup-1.34-cp39-cp39-macosx_10_14_x86_64.whl.metadata (1.4 kB)
Requirement already satisfied: pandas in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (1.5.2)
Requirement already satisfied: numpy==1.23 in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (1.23.0)
Requirement already satisfied: tqdm in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (4.64.1)
Requirement already satisfied: pyyaml in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (6.0)
Collecting pillow-heif (from fastdup==1.34)
  Obtaining dependency information for pillow-heif from https://files.pythonhosted.org/packages/84/70/bae14c7e8d188f3042811a90a7899aabd594363aec31335e80a379e66853/pillow_heif-0.13.0-cp39-cp39-macosx_10_9_x86_64.whl.metadata
  Using cached pillow_heif-0.13.0-cp39-cp39-macosx_10_9_x86_64.whl.metadata (9.1 kB)
Requirement already satisfied: requests==2.28.1 in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (2.28.1)
Requirement already satisfied: packaging in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (22.0)
Requirement already satisfied: sentry-sdk in /Users/briant/opt/anaconda3/envs/flyte/lib/python3.9/site-packages (from fastdup==1.34) (1.28.1)
INFO: pip is looking at multiple versions of fastdup to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement opencv-python-headless==4.1.2.30 (from fastdup) (from versions: 3.4.10.37, 3.4.11.39, 3.4.11.41, 3.4.11.43, 3.4.11.45, 3.4.13.47, 3.4.14.51, 3.4.14.53, 3.4.15.55, 3.4.16.57, 3.4.16.59, 3.4.17.61, 3.4.17.63, 3.4.18.65, 4.3.0.38, 4.4.0.40, 4.4.0.42, 4.4.0.44, 4.4.0.46, 4.5.1.48, 4.5.2.52, 4.5.2.54, 4.5.3.56, 4.5.4.58, 4.5.4.60, 4.5.5.62, 4.5.5.64, 4.6.0.66, 4.7.0.68, 4.7.0.72, 4.8.0.74, 4.8.0.76)
ERROR: No matching distribution found for opencv-python-headless==4.1.2.30

Debug output attached. debug.txt

I was previously able to use 1.22 fine, until I had the error above at runtime stating 1.22 is out of date

dbickson commented 10 months ago

Hi @ashrielbrian Please to run the following pip install fastdup==1.38 --no-deps -U let me know if this works.

The issue is that there are a few opencv-headless versions which are not compatible with different generations of mac intel. So we are not able to fix the correct version, if we do not fix the version older macs OS do not work and if we fix it newer mac OS do not work. So the workaround is to install opencv-python-headless before fastdup and then install fastdup with --no-deps

ashrielbrian commented 10 months ago

@dbickson i see - yeah, that works.

pip install -U fastdup==1.34 --no-deps

# i was missing pillow-heif in my env
pip install pillow-heif

it's a bit wonky, because after install pillow-heif I can see that my python env now has a few conflicting versions:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
fastdup 1.34 requires opencv-python-headless==4.1.2.30, but you have opencv-python-headless 4.7.0.72 which is incompatible.
fastdup 1.34 requires pillow==9.1.0, but you have pillow 10.0.0 which is incompatible.
Successfully installed pillow-10.0.0 pillow-heif-0.13.0

At runtime however, it looks fine. Thanks @dbickson

dbickson commented 10 months ago

Thanks for the report, we will keep trying to find a resolution to this problem.