error with pip installation (RESCRIPt)

I saw this comment and felt like I had found a light at the end of the tunnel. Thank you so much.
But, unfortunately, I still have a problem.
After following 'Option 2: Install within QIIME 2 environment', I ran 'pip install git+https://github.com/bokulich-lab/RESCRIPt.git', but I get the following error... :frowning:(

(rescript) [jww4557@SML test2]$ pip install git+https://github.com/bokulich-lab/RESCRIPt.git
Collecting git+https://github.com/bokulich-lab/RESCRIPt.git
Cloning GitHub - bokulich-lab/RESCRIPt: REference Sequence annotation and CuRatIon Pipeline to /tmp/pip-req-build-l0eodwax
Running command git clone --filter=blob:none --quiet GitHub - bokulich-lab/RESCRIPt: REference Sequence annotation and CuRatIon Pipeline /tmp/pip-req-build-l0eodwax
Resolved GitHub - bokulich-lab/RESCRIPt: REference Sequence annotation and CuRatIon Pipeline to commit c7c6b4e8b0d7e2f1654806e733de5326757b442f
Preparing metadata (setup.py) ... done
Building wheels for collected packages: rescript
Building wheel for rescript (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [42 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "/tmp/pip-req-build-l0eodwax/setup.py", line 14, in
setup(
File "/usr/local/lib/python3.11/site-packages/setuptools/init.py", line 87, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 172, in setup
ok = dist.parse_command_line()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 474, in parse_command_line
args = self._parse_command_opts(parser, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/dist.py", line 1107, in _parse_command_opts
nargs = _Distribution._parse_command_opts(self, parser, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 533, in _parse_command_opts
cmd_class = self.get_command_class(command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/setuptools/dist.py", line 954, in get_command_class
self.cmdclass[command] = cmdclass = ep.load()
^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/metadata/init.py", line 202, in load
module = import_module(match.group('module'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1206, in _gcd_import
File "", line 1178, in _find_and_load
File "", line 1149, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "", line 940, in exec_module
File "", line 241, in _call_with_frames_removed
File "/usr/local/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 28, in
from .macosx_libfile import calculate_macosx_platform_tag
File "/usr/local/lib/python3.11/site-packages/wheel/macosx_libfile.py", line 43, in
import ctypes
File "/usr/local/lib/python3.11/ctypes/init.py", line 8, in
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for rescript
Running setup.py clean for rescript
Failed to build rescript
ERROR: Could not build wheels for rescript, which is required to install pyproject.toml-based projects

Hello,

there are two problems:

  1. You have the wrong version of Python installed in the environment - 3.11 introduced breaking changes and a lot of libraries still don't work with it. Optimally install 3.8 because it's the one that QIIME 2 is tested on.

  2. pip delivers only Python libraries (thus, Python apps should work). That means all the different extensions QIIME 2 (written in R & C/C++) will have a problem because they need an interpreter and/or compiler to work properly. They don't come with Python distribution and tend to have more compatibility problems (ie. GCC has 13 different versions, G++ has 11, GCC will compile C++, but not the other way around. It's another level of software dev problems). Thus, it's better to use conda, which delivers more (everything you need) for the app to run smoothly on your machine.

Cheers
V

2 Likes