We are using Python v3.8.10 32-bit running on Windows 7. I understand that a prebuilt wheel is available for 64-bit Python? Unfortunately for various reasons, we can only use 32-bit Python on this machine.
I'm using Poetry to manage my virtual environment. Here's a minimal pyproject.toml file that I used to set up the virtual environment with Poetry:
[tool.poetry]
name = "vimms-fusion"
version = "2.0.0"
description = ""
authors = ["Joe Wandy <[email protected]>"]
readme = "README.md"
packages = [{include = "vimms_fusion"}]
[tool.poetry.dependencies]
python = ">3.8,<3.12"
ms-peak-picker = "*"
brain-isotopic-distribution = "*"
ms-deisotope = "*"
numpy = "*"
scipy = { url = "https://download.lfd.uci.edu/pythonlibs/archived/SciPy-1.8.1-cp38-cp38-win32.whl" }
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Updating dependencies
Resolving dependencies... (0.5s)
Package operations: 4 installs, 0 updates, 0 removals
• Installing numpy (1.24.4)
• Installing scipy (1.8.1 https://download.lfd.uci.edu/pythonlibs/archived/SciPy-1.8.1-cp38-cp38-win32.whl)
• Installing six (1.16.0)
• Installing ms-peak-picker (0.1.41): Failed
ChefBuildError
Backend subprocess exited when trying to invoke get_requires_for_build_wheel
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\double_vector.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\fft_patterson_charge_state.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\fticr_denoising.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\interval_t_vector.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
warning: src\ms_peak_picker\_c\interval_t_vector.pyx:68:0: The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310
warning: src\ms_peak_picker\_c\interval_t_vector.pyx:69:0: The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\peak_index.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\peak_picker.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\peak_set.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\peak_statistics.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
warning: src\ms_peak_picker\_c\peak_statistics.pyx:726:0: The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\scan_averaging.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\search.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\joewa\AppData\Local\Temp\tmprdtlp9eu\ms_peak_picker-0.1.41\src\ms_peak_picker\_c\size_t_vector.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
warning: src\ms_peak_picker\_c\size_t_vector.pyx:43:0: The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310
warning: src\ms_peak_picker\_c\size_t_vector.pyx:44:0: The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310
Error compiling Cython file:
------------------------------------------------------------
...
PyObject_Free(info.shape)
cpdef void qsort(self, bint reverse=False) nogil:
if reverse:
qsort(self.get_data(), self.size(), sizeof(size_t), compare_value_size_t_reverse)
^
------------------------------------------------------------
src\ms_peak_picker\_c\size_t_vector.pyx:331:64: Cannot assign type 'int (const void *, const void *) except? -1 nogil' to 'int (*)(void *, void *) noexcept nogil'
Error compiling Cython file:
------------------------------------------------------------
...
cpdef void qsort(self, bint reverse=False) nogil:
if reverse:
qsort(self.get_data(), self.size(), sizeof(size_t), compare_value_size_t_reverse)
else:
qsort(self.get_data(), self.size(), sizeof(size_t), compare_value_size_t)
^
------------------------------------------------------------
src\ms_peak_picker\_c\size_t_vector.pyx:333:64: Cannot assign type 'int (const void *, const void *) except? -1 nogil' to 'int (*)(void *, void *) noexcept nogil'
Traceback (most recent call last):
File "<string>", line 235, in <module>
File "<string>", line 213, in run_setup
File "<string>", line 82, in make_cextensions
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Build\Dependencies.py", line 1134, in cythonize
cythonize_one(*args)
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Build\Dependencies.py", line 1301, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: src/ms_peak_picker/_c/size_t_vector.pyx
Building with OpenMP? True
Version is: '0.1.41'
Using Directives {'embedsignature': True, 'profile': False}
Compiling src/ms_peak_picker/_c/peak_statistics.pyx because it changed.
Compiling src/ms_peak_picker/_c/peak_set.pyx because it changed.
Compiling src/ms_peak_picker/_c/fft_patterson_charge_state.pyx because it changed.
Compiling src/ms_peak_picker/_c/search.pyx because it changed.
Compiling src/ms_peak_picker/_c/peak_index.pyx because it changed.
Compiling src/ms_peak_picker/_c/double_vector.pyx because it changed.
Compiling src/ms_peak_picker/_c/size_t_vector.pyx because it changed.
Compiling src/ms_peak_picker/_c/interval_t_vector.pyx because it changed.
Compiling src/ms_peak_picker/_c/smoother.pyx because it changed.
Compiling src/ms_peak_picker/_c/scan_averaging.pyx because it changed.
Compiling src/ms_peak_picker/_c/fticr_denoising.pyx because it changed.
Compiling src/ms_peak_picker/_c/peak_picker.pyx because it changed.
[ 1/12] Cythonizing src/ms_peak_picker/_c/double_vector.pyx
[ 2/12] Cythonizing src/ms_peak_picker/_c/fft_patterson_charge_state.pyx
[ 3/12] Cythonizing src/ms_peak_picker/_c/fticr_denoising.pyx
[ 4/12] Cythonizing src/ms_peak_picker/_c/interval_t_vector.pyx
[ 5/12] Cythonizing src/ms_peak_picker/_c/peak_index.pyx
[ 6/12] Cythonizing src/ms_peak_picker/_c/peak_picker.pyx
[ 7/12] Cythonizing src/ms_peak_picker/_c/peak_set.pyx
[ 8/12] Cythonizing src/ms_peak_picker/_c/peak_statistics.pyx
[ 9/12] Cythonizing src/ms_peak_picker/_c/scan_averaging.pyx
[10/12] Cythonizing src/ms_peak_picker/_c/search.pyx
[11/12] Cythonizing src/ms_peak_picker/_c/size_t_vector.pyx
Traceback (most recent call last):
File "C:\Users\joewa\AppData\Roaming\pypoetry\venv\lib\site-packages\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
main()
File "C:\Users\joewa\AppData\Roaming\pypoetry\venv\lib\site-packages\pyproject_hooks\_in_process\_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "C:\Users\joewa\AppData\Roaming\pypoetry\venv\lib\site-packages\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\setuptools\build_meta.py", line 341, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\setuptools\build_meta.py", line 323, in _get_build_requires
self.run_setup()
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\setuptools\build_meta.py", line 487, in run_setup
super(_BuildMetaLegacyBackend,
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\setuptools\build_meta.py", line 338, in run_setup
exec(code, locals())
File "<string>", line 235, in <module>
File "<string>", line 213, in run_setup
File "<string>", line 82, in make_cextensions
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Build\Dependencies.py", line 1134, in cythonize
cythonize_one(*args)
File "C:\Users\joewa\AppData\Local\Temp\tmpsjq_pwk8\.venv\lib\site-packages\Cython\Build\Dependencies.py", line 1301, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: src/ms_peak_picker/_c/size_t_vector.pyx
at ~\AppData\Roaming\pypoetry\venv\lib\site-packages\poetry\installation\chef.py:147 in _prepare
143│
144│ error = ChefBuildError("\n\n".join(message_parts))
145│
146│ if error is not None:
→ 147│ raise error from None
148│
149│ return path
150│
151│ def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:
Note: This error originates from the build backend, and is likely not a problem with poetry but with ms-peak-picker (0.1.41) not supporting PEP 517 builds. You can verify this by running 'pip wheel --use-pep517 "ms-peak-picker (==0.1.41)"'.
This problem doesn't occur when I tested on Python v3.8.10 64-bit, so I'm thinking the above compilation error is specific to 32-bit Python. Any help or advice on how to fix this would be appreciated. Thanks a million!