如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装pyregion
我正在尝试在 Python 3.9.6 和 MacOS Sonoma 14.3.1 上安装pyregion(一个与天文数据分析相关的包)。
我试了很多方法,但总是遇到新的问题。首先,我用标准的方法:
pip3 install pyregion结果出现了一个错误信息:"构建 pyregion 的轮子失败了"。之后,我又尝试了很多在 StackOverflow 上找到的建议,包括升级 numpy、升级 pip3 本身,还有用
python3 -m pip install pyregion现在,我正在尝试直接安装文件,这些文件可以在这里找到:
https://pypi.org/project/pyregion/#files运行
python3 setup.py install
时遇到的第一个问题是:
Traceback (most recent call last):
File "/Users/claudiopedrazzi/Downloads/pyregion-2.2.0/setup.py", line 5, in <module>
from Cython.Build import cythonize
ModuleNotFoundError: No module named 'Cython'*
然后我还安装了 Cython,命令是:
pip3 install --upgrade cython
这成功为我安装了 cython-3.0.9。再次尝试运行 setup.py 时,我得到了一个很长的错误信息,最后是:
/Users/claudiopedrazzi/Library/Python/3.9/lib/python/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
#warning "Using deprecated NumPy API, disable it with " \
^
pyregion/_region_filter.c:18264:3: error: incompatible pointer to integer conversion returning 'void *' from a function with result type 'int' [-Wint-conversion]
import_array();
^~~~~~~~~~~~~~
/Users/claudiopedrazzi/Library/Python/3.9/lib/python/site-packages/numpy/core/include/numpy/__multiarray_api.h:1558:151: note: expanded from macro 'import_array'
#define import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NULL; } }
^~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include/stddef.h:89:16: note: expanded from macro 'NULL'
# define NULL ((void*)0)
^~~~~~~~~~
1 warning and 1 error generated.
error: command '/usr/bin/clang' failed with exit code 1
我真的需要一步一步的指导。我的环境是最新的,我不明白为什么这个特定的包会出现这些问题,而其他包像 astropy 和 matplotlib 都能正常工作。
1 个回答
0
你可能需要向维护者提出请求,让他们来修复这个问题。我很容易就能重现这个问题。看起来他们在跟进环境方面有些滞后。
我假设代码是写得正确的,虽然这不一定是事实。维护者需要处理这个问题。如果真的有bug,你可能会遇到麻烦。 考虑到这一点,我在安装时添加了-Wno-int-conversion
这个编译器选项,这样可以告诉编译器这个转换其实是可以的,从而解决了“错误:指针与整数转换不兼容”的问题。
CFLAGS="-Wno-int-conversion" pip install pyregion
为了完整起见,我是在虚拟环境中完成这项工作的。我不认为这会有什么影响。