导入matplotlib时出现安全策略错误

d7v8vwbk  于 2023-01-21  发布在  其他
关注(0)|答案(4)|浏览(169)

安装matplotlib后,我在使用此命令时收到此错误:

$ import matplotlib
import-im6.q16: attempt to perform an operation not allowed by the security policy `PS` @ error/constitute.c/IsCoderAuthorized/408.

有人能帮我解决这个问题吗?

35g0bw71

35g0bw711#

如果我从shell运行import,就会发生这种情况。

$ import
import-im6.q16: missing an image filename `import' @ error/import.c/ImportImageCommand/1289.

This askubuntu question告诉我import是一个内置的ImageMagick命令。
溶液
首先必须启动Python交互式提示符:

python
>>> import matplotlib
noj0wjuj

noj0wjuj2#

取决于你怎么做import matplotlib
只需使用以下解决方案之一即可解决此问题。
1.如果你使用的是Python解释器,也就是命令行中的解释器,那么这种情况就不会发生,因为你只是在导入模块。
1.如果你在Python文件中写了这行代码,假设我们把文件命名为 myfile.py,并且你试图在命令行上执行它,比如./myfile.py,那么这是错误的,因为如果你使用的是Python3,你必须在命令行上写python myfile.pypython3 myfile.py
1.您可以通过在文件#!/bin/python#!/usr/bin/python的第一行添加来指定文件中的python解释器,然后在命令行中像bash文件./myfile.py一样运行文件

yc0p9oo0

yc0p9oo03#

您不是从python shell调用import matplotlib,而是从系统shell调用。您看到的错误来自import命令,根据man import,该命令将屏幕的一部分保存为图像。如果您在第一行没有放置shabang的情况下调用脚本(如#!/usr/bin/env python3),也会发生这种情况。

vu8f3i0k

vu8f3i0k4#

看看其他更老的答案,它们非常好。
另一个可能的原因:这可能是从剪贴板剪切和粘贴错误。
您可以在#!/usr/bin/env python3行之前以及所有后续行的开头使用空格。因此您的脚本仍然是有效的python-script,但shell无法解释#!/usr/bin/env python3行。因此它将您的脚本读取为bash脚本。
删除空白可能会有所帮助;或使用python3 myscript.py调用脚本

相关问题