【问题标题】:Segmentation fault when importing libraries in Python在 Python 中导入库时出现分段错误
【发布时间】:2018-12-19 02:12:54
【问题描述】:

我正在尝试在 python 中导入以下库:

import os, sys, random, glob, argparse, math, gc
import cv2
import dlib
import imutils
from imutils import face_utils
import matplotlib
import matplotlib.pyplot as plt
from skimage.feature import hog
from skimage import data, exposure
import sklearn
from sklearn import svm, metrics
import numpy as np
import pandas as pd
from bcolz import carray
from tqdm import tqdm
from time import sleep
import datetime as dt

所有这些库都安装在 conda 环境中,并且当我将它们导入 jupyter 笔记本时可以正常工作。 但是,当我尝试在终端中导入它们或使用脚本时,只要我执行:

import matplotlib.pyplot as plt

有一个:

Segmentation Fault(core dumped)

我想知道为什么它在 jupyter notebook 中有效,但在终端中无效

【问题讨论】:

  • 能否在import matplotlib 后面加上print(matplotlib.rcParams["backend"])?我猜这与有故障的后端有关
  • 你用anaconda自带的jupyter notebook吗?如果是,那么它使用与 conda 相同的环境。当您在终端中尝试此代码时,您是否激活了该环境?
  • 当我使用后端作为 tkagg 时它可以工作,但从 sklearn 导入数据仍然中断。是的,我在终端中运行时激活了环境

标签: python matplotlib scikit-learn segmentation-fault python-import


【解决方案1】:

因为 anaconda 是一个虚拟环境,它可以在 jupyter-notebook 上运行,但不能在您的操作系统命令行中运行。如果你想在命令行上使用,建议先安装python、pip,然后再安装你需要的包(都在你的命令行上)。

我个人建议安装 pycharm IDE 来在本地测试你的代码。它真的很容易安装,它会尝试识别你的 python 安装。在那里,您可以轻松地添加配置中需要的所有包并将它们导入代码中。

这里是如何在pycharm中添加包(例如numpy

  • 在 Pycharm 导航侧选择您的项目
  • 文件 > 设置 (Ctrl + Alt + s)
  • 项目
  • 项目口译员
  • 加号按钮
  • 搜索 Numpy
  • 安装包

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多