Aks*_* S. 5 python numpy matplotlib pycharm
我在 Mac 上的 Pycharm .py 脚本中导入 numpy 和 matplotlib,但不断收到此错误。
/usr/bin/python3 /Users/aksseet/PycharmProjects/Election/electorate.py
/Users/aksseet/PycharmProjects/Election/electorate.py:1: UserWarning: The NumPy module was reloaded (imported a second time). This can in some cases result in small but subtle
issues and is discouraged.
import numpy as np
Traceback (most recent call last):
File "/Users/aksseet/PycharmProjects/Election/electorate.py", line 2, in <module>
import matplotlib.pyplot as plt
File "/Users/aksseet/Library/Python/3.8/lib/python/site-packages/matplotlib/__init__.py", line 107, in <module>
from . import _api, cbook, docstring, rcsetup
File "/Users/aksseet/Library/Python/3.8/lib/python/site-packages/matplotlib/rcsetup.py", line 24, in <module>
from matplotlib import _api, animation, cbook
File "/Users/aksseet/Library/Python/3.8/lib/python/site-packages/matplotlib/animation.py", line 34, in <module>
from PIL import Image
File "/Users/aksseet/Library/Python/3.8/lib/python/site-packages/PIL/Image.py", line 114, in <module>
from . import _imaging as core
ImportError: dlopen(/Users/aksseet/Library/Python/3.8/lib/python/site-packages/PIL/_imaging.cpython-38-darwin.so, 2): no suitable image found. Did find:
/Users/aksseet/Library/Python/3.8/lib/python/site-packages/PIL/_imaging.cpython-38-darwin.so: mach-o, but wrong architecture
/Users/aksseet/Library/Python/3.8/lib/python/site-packages/PIL/_imaging.cpython-38-darwin.so: mach-o, but wrong architecture
Run Code Online (Sandbox Code Playgroud)
我已经尝试重新安装 python、numpy 和 matplotlib。我应该怎么办?
完整免责声明:我没有 Mac,因此我没有任何方法来测试此解决方案是否有效。不过,我会尽力而为,希望至少能为进一步挖掘提供一些有用的资源。
从我读到的几个引用类似错误的 GitHub 问题来看,这可能是因为您的pip安装程序为您的计算机抓取了错误的预构建包wheel,并且正在安装适用于不同机器的二进制文件。
对于一些 macOS 用户来说,通过设置环境变量 似乎可以很容易地解决这个问题SYSTEM_VERSION_COMPAT=1。但是,如果这不能解决问题,还有更深入的方法。
你提到你尝试重新安装Python;我的第一个建议是确保您安装了适合您的处理器的正确版本。我还强烈建议直接从Python.org安装它,而不是任何第三方包管理系统。对于 M1 Mac,您似乎需要为universal2指示的 macOS 安装:如果您使用的是Intel或仅限 Intel 的安装程序,这可能是pip模块使用wheel错误的二进制文件获取 s 的潜在原因。
Pillow使用自动wheel选择重新安装提供的回溯指向Pillow共享对象文件的问题。复制错误的最小示例应该是
from PIL import Image
Run Code Online (Sandbox Code Playgroud)
该包的 GitHub 存储库上有一个与此相关的问题线程,解决方案似乎是卸载并重新安装该包,并注意确保使用与所需的 Python 安装关联的相同模块。您通常还希望确保您的模块具有最新更新。从您在示例中调用 Python 的方式来看,这可能类似于:PillowImportErrorpippip
/usr/bin/python3 -m pip install --upgrade pip
/usr/bin/python3 -m pip uninstall Pillow
/usr/bin/python3 -m pip install Pillow
Run Code Online (Sandbox Code Playgroud)
此时,安装程序应自动选择、下载并安装适合wheel您系统的正确版本。但是,如果您在为另一台机器获取二进制文件时仍然遇到问题,您可以用自己的选择覆盖安装程序的选择。
Pillow通过手动wheel选择重新安装要知道wheel选择哪个,请首先检查您支持的系统标签:
/usr/bin/python3 -c "from packaging import tags; print('\n'.join([str(t) for t in tags.sys_tags()]))" | head -5
Run Code Online (Sandbox Code Playgroud)
对于您的系统 - 取决于您拥有的操作系统版本、Python 版本和处理器 - 可能会有一些输出,例如
cp38-cp38-macosx_11_0_universal2
cp38-cp38-macosx_11_0_arm64
cp38-cp38-macosx_11_0_x86_64
cp38-cp38-macosx_10_15_arm64
cp38-cp38-macosx_10_15_x86_64
Run Code Online (Sandbox Code Playgroud)
您可以将其与PyPI上的预构建列表进行匹配,下载带有支持的系统标记的列表Pillowwheel,然后从本地.whl文件安装它。例如,如果您支持的标签之一是cp310-cp310-macosx_11_0_arm64.whl,您可以使用以下内容:
/usr/bin/python3 -m pip install --upgrade pip
/usr/bin/python3 -m pip uninstall Pillow
/usr/bin/python3 -m pip install Pillow-9.1.1-cp310-cp310-macosx_11_0_arm64.whl
Run Code Online (Sandbox Code Playgroud)
如果需要,您几乎可以对任何其他包执行相同的操作。只需注意检查您需要的任何使用新重新安装的软件包作为依赖项的软件包是否有特定的版本要求(例如, how matplotlibrequirepillow>=6.2.0)。
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
4508 次 |
| 最近记录: |