欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jupyter notebook 使用過程中python莫名崩潰的原因及解決方式

 更新時間:2020年04月10日 09:47:35   作者:樂且有儀  
這篇文章主要介紹了jupyter notebook 使用過程中python莫名崩潰的原因及解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近在使用 Python notebook時老是出現(xiàn)python崩潰的現(xiàn)象,如下圖,誘發(fā)的原因是“KERNELBASE.dll”,異常代碼報“40000015”。

折騰半天,發(fā)現(xiàn)我啟動notebook時是用自定義startup.bat方式方式啟動的,bat文件的內(nèi)容為

start C:\Anaconda3\python.exe "C:/Anaconda3/Scripts/jupyter-notebook-script.py"

平時雙擊這個bat文件就行了,如果報這個莫名的錯誤,是因為權(quán)限不對,需要用管理員方式運行,如圖,問題解決!

補充知識:jupyter notebook占用內(nèi)存空間過大打不開的解決辦法(包括但不限于爬蟲造成的)

jupyter notebook由于超過內(nèi)存限制而“鎖死”的解決
這兩天用爬蟲爬數(shù)據(jù)的時候由于print了大量的爬取內(nèi)容,讓notebook內(nèi)存溢出停止運行,連帶著localhost:8888也崩潰了。Google Chrome的處理機制應(yīng)該是殺掉內(nèi)存溢出的頁面,所以localhost:8888刷新一下就恢復(fù)了。

但是!我的code找不回來了!不知道是什么機制,在文件里看到的大小只有不到45MB,但是一旦從localhost:8888里面打開,(用任務(wù)管理器看的)Chrome占用的內(nèi)存就遠(yuǎn)遠(yuǎn)超過這個數(shù)字,一直飆升到3GB的時候再次彈出來內(nèi)存不足的提示,同時頁面被殺掉。用pycharm嘗試更是失敗,比Chrome還吃內(nèi)存。

在經(jīng)歷了各種嘗試,上網(wǎng)搜了也沒有發(fā)現(xiàn)相關(guān)情況之后,自己偶然發(fā)現(xiàn)了解決辦法:

如何打開源文件:

在ipynb文件的地方選擇打開方式,用Chrome瀏覽器打開,頁面的觀感類似于網(wǎng)頁源碼,內(nèi)容是json格式的。

我能想到的幾種解決辦法:

第一種是笨辦法(核心思想:只要能夠打開源文件就可以把需要的東西復(fù)制下來),把重要的代碼復(fù)制出來,比如到txt文件里面,再把格式用的一些字符去掉,如果代碼量不是很多可以這樣做;

這是一定能成功的辦法,就是麻煩了一些,就不多說了。

第二種是重新構(gòu)造一個json文件(核心思想:既然我已經(jīng)知道ipynb本質(zhì)是json就可以仿造構(gòu)建一個可以打開的ipynb),導(dǎo)致問題的只是一個block,所以把有問題的block之外的所有block信息復(fù)制到一個txt文件,再重命名成ipynb,用jupyter notebook解析出來即可(甚至還可以直接繼續(xù)運行);

實際可行性:我是用的第二種辦法,實測可行,簡單快捷。要注意的是一定要把最末尾的ipynb格式信息復(fù)制上。知道ipynb構(gòu)造之后,覺得自己也能寫個網(wǎng)頁打開ipynb的程序了(大誤)

第三種思想是用Python直接讀取ipynb文件,然后小心地把重要代碼和結(jié)果還原。(核心思想:不管后綴名是什么,只要里面是json格式就可以用Python的json包load),這種方法一定要注意的一點是,要觀察好json文件里面的構(gòu)造,不要全部print!不要全部print!之前怎么死的還不長記性嗎?只要一print之前內(nèi)存溢出的block就全部玩兒完,就又有了一個被鎖死的ipynb文件。

理論可行性:文件本身的大小只有幾十MB,輕輕松松就能存下,內(nèi)存溢出可能是因為print的內(nèi)容在網(wǎng)頁中占用的資源成倍增加。我沒有嘗試這么做,因為隨時需要存檔備份,小心臟受不了。

看到這兒基本上問題就應(yīng)該解決了,下面補充一點問題來源和教訓(xùn)

前因后果:為什么會內(nèi)存溢出

這是一個“雄心勃勃”的爬蟲,要爬的東西很多,所以會長時間運行。由于微博的反爬做的很好,我不確定什么時候會被屏蔽,同時需要debug嘛,所以就隔一段時間print爬到的網(wǎng)頁。另外為了觀察進度還用了tqdm(非常好用,墻裂推薦),是為print的另一部分內(nèi)容。時間積累了很久(大概兩天多)就卡崩潰了。

經(jīng)驗教訓(xùn):

1、執(zhí)行正式文件的時候還是最好備份一下,這次出問題我的結(jié)果是保存在文件里面的,是code打不開了,由于是孤本所以還是有點慌的(主要是跟微博斗智斗勇那么多天不想再搞了)

2、可以試著在文件里面寫入日志,簡單的就print也沒關(guān)系,這種長時間運行的程序還是需要考慮周全一點

附一個ipynb文件源文件格式示例:

內(nèi)容是hello world!

{
“cells”: [
{
“cell_type”: “code”,
“execution_count”: 1,
“metadata”: {},
“outputs”: [
{
“name”: “stdout”,
“output_type”: “stream”,
“text”: [
“hello world!\n”
]
}
],
“source”: [
“print(‘hello world!')”
]
},
{
“cell_type”: “code”,
“execution_count”: null,
“metadata”: {},
“outputs”: [],
“source”: []
}
],
“metadata”: {
“kernelspec”: {
“display_name”: “Python 3”,
“l(fā)anguage”: “python”,
“name”: “python3”
},
“l(fā)anguage_info”: {
“codemirror_mode”: {
“name”: “ipython”,
“version”: 3
},
“file_extension”: “.py”,
“mimetype”: “text/x-python”,
“name”: “python”,
“nbconvert_exporter”: “python”,
“pygments_lexer”: “ipython3”,
“version”: “3.7.3”
}
},
“nbformat”: 4,
“nbformat_minor”: 2
}

以上這篇jupyter notebook 使用過程中python莫名崩潰的原因及解決方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)LRU算法的2種方法

    Python實現(xiàn)LRU算法的2種方法

    這篇文章主要介紹了Python實現(xiàn)LRU算法的2種方法,本文分別給出了用OrderedDict實現(xiàn)、用dict+list實現(xiàn)兩種方法,需要的朋友可以參考下
    2015-06-06
  • Python小整數(shù)對象池和字符串intern實例解析

    Python小整數(shù)對象池和字符串intern實例解析

    這篇文章主要介紹了Python小整數(shù)對象池和字符串intern實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python編程實現(xiàn)控制cmd命令行顯示顏色的方法示例

    Python編程實現(xiàn)控制cmd命令行顯示顏色的方法示例

    這篇文章主要介紹了Python編程實現(xiàn)控制cmd命令行顯示顏色的方法,結(jié)合實例形式分析了Python針對命令行字符串顯示顏色屬性相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Python雙端隊列實現(xiàn)回文檢測

    Python雙端隊列實現(xiàn)回文檢測

    雙端隊列 Deque 是一種有次序的數(shù)據(jù)集,跟隊列相似,其兩端可以稱作"首" 和 "尾"端。這篇文章將通過雙端隊列實現(xiàn)回文檢測,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • python實現(xiàn)稀疏矩陣示例代碼

    python實現(xiàn)稀疏矩陣示例代碼

    本篇文章主要介紹了python實現(xiàn)稀疏矩陣示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • python Gunicorn服務(wù)器使用方法詳解

    python Gunicorn服務(wù)器使用方法詳解

    這篇文章主要介紹了python Gunicorn服務(wù)器使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python查詢mysql中文亂碼問題

    python查詢mysql中文亂碼問題

    本文主要是解決python2.7在查詢mysql時產(chǎn)生中文亂碼的處理方法,非常的有用,親測可行,推薦給大家
    2014-11-11
  • 利用For循環(huán)遍歷Python字典的三種方法實例

    利用For循環(huán)遍歷Python字典的三種方法實例

    字典由多個鍵和其對應(yīng)的值構(gòu)成的鍵—值對組成,鍵和值中間以冒號:隔開,項之間用逗號隔開,整個字典是由大括號{}括起來的,下面這篇文章主要給大家介紹了關(guān)于如何利用For循環(huán)遍歷Python字典的三種方法,需要的朋友可以參考下
    2022-03-03
  • python地震數(shù)據(jù)可視化詳解

    python地震數(shù)據(jù)可視化詳解

    這篇文章主要為大家詳細(xì)介紹了python地震數(shù)據(jù)可視化的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python實現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能

    Python實現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能

    這篇文章主要介紹了Python實現(xiàn)的查詢mysql數(shù)據(jù)庫并通過郵件發(fā)送信息功能,可實現(xiàn)Python針對mysql的查詢與宕機信息通過郵件發(fā)送的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05

最新評論