Jupyter Notebook運(yùn)行代碼無反應(yīng)問題及解決方法
Jupyter Notebook運(yùn)行代碼無反應(yīng)
在學(xué)習(xí)人臉識(shí)別知識(shí)的過程中需要用到Anaconda 、Jupyter Notebook.
我在啟動(dòng)Jupyter Notebook后,新建代碼運(yùn)行無反應(yīng)。
從頁面上也觀察不出來是什么問題,后來在Anaconda Pormpt中啟動(dòng)Jupyter Notebook,我一開始還以為是自動(dòng)啟動(dòng)的,傻傻的等它自動(dòng)運(yùn)行。。。
結(jié)果是在瀏覽器中操作,命令行中才會(huì)跑模塊的運(yùn)行情況。
要在瀏覽器中shift+enter執(zhí)行代碼片段,后臺(tái)包這個(gè)錯(cuò)誤。
(tensorflow) C:\Users\admin>jupyter notebook
[I 15:55:33.979 NotebookApp] The port 8888 is already in use, trying another port.
[I 15:55:34.011 NotebookApp] The port 8889 is already in use, trying another port.
[I 15:55:34.130 NotebookApp] Serving notebooks from local directory: C:\Users\admin
[I 15:55:34.131 NotebookApp] The Jupyter Notebook is running at:
[I 15:55:34.137 NotebookApp] http://localhost:8890/?token=7d8aff641154f969e61dec8ebd511d98849f08829e440fe0
[I 15:55:34.139 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 15:55:34.220 NotebookApp]
To access the notebook, open this file in a browser:
file:///C:/Users/admin/AppData/Roaming/jupyter/runtime/nbserver-24428-open.html
Or copy and paste one of these URLs:
http://localhost:8890/?token=7d8aff641154f969e61dec8ebd511d98849f08829e440fe0
Traceback (most recent call last):
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\tornado\ioloop.py", line 888, in start
handler_func(fd_obj, events)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\tornado\stack_context.py", line 277, in null_wrapper
return fn(*args, **kwargs)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\zmq\eventloop\zmqstream.py", line 450, in _handle_events
self._handle_recv()
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\zmq\eventloop\zmqstream.py", line 480, in _handle_recv
self._run_callback(callback, msg)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\zmq\eventloop\zmqstream.py", line 432, in _run_callback
callback(*args, **kwargs)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\tornado\stack_context.py", line 277, in null_wrapper
return fn(*args, **kwargs)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\ipykernel\kernelbase.py", line 283, in dispatcher
return self.dispatch_shell(stream, msg)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\ipykernel\kernelbase.py", line 233, in dispatch_shell
self.pre_handler_hook()
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\site-packages\ipykernel\kernelbase.py", line 248, in pre_handler_hook
self.saved_sigint_handler = signal(SIGINT, default_int_handler)
File "C:\Users\admin\Anaconda3\envs\tensorflow\lib\signal.py", line 47, in signal
handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
ValueError: signal only works in main thread
[IPKernelApp] WARNING | Parent appears to have exited, shutting down.
然后參考http://www.dbjr.com.cn/article/271651.htm 解決。
(tensorflow) C:\Users\admin>pip install "pyzmq==17.0.0" "ipykernel==4.8.2"
Collecting pyzmq==17.0.0
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)",)': /simple/pyzmq/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)",)': /simple/pyzmq/
Downloading https://files.pythonhosted.org/packages/27/0b/a275f30738a014dc25443d2f45156ca739991df581fdaa40aa19df6c4f86/pyzmq-17.0.0-cp36-cp36m-win_amd64.whl (944kB)
100% |████████████████████████████████| 952kB 49kB/s
Collecting ipykernel==4.8.2
Downloading https://files.pythonhosted.org/packages/ab/3f/cd624c835aa3336a9110d0a99e15070f343b881b7d651ab1375ef226a3ac/ipykernel-4.8.2-py3-none-any.whl (108kB)
100% |████████████████████████████████| 112kB 58kB/s
Requirement already satisfied: ipython>=4.0.0 in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from ipykernel==4.8.2) (6.1.0)
Requirement already satisfied: tornado>=4.0 in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from ipykernel==4.8.2) (4.5.2)
Requirement already satisfied: traitlets>=4.1.0 in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from ipykernel==4.8.2) (4.3.2)
Requirement already satisfied: jupyter-client in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from ipykernel==4.8.2) (5.2.4)
Requirement already satisfied: jupyter-core in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from jupyter-client->ipykernel==4.8.2) (4.4.0)
Requirement already satisfied: python-dateutil>=2.1 in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from jupyter-client->ipykernel==4.8.2) (2.6.1)
Requirement already satisfied: six>=1.5 in c:\users\admin\anaconda3\envs\tensorflow\lib\site-packages (from python-dateutil>=2.1->jupyter-client->ipykernel==4.8.2) (1.10.0)
Installing collected packages: pyzmq, ipykernel
Found existing installation: pyzmq 17.1.2
Uninstalling pyzmq-17.1.2:
Successfully uninstalled pyzmq-17.1.2
Found existing installation: ipykernel 4.6.1
Cannot uninstall 'ipykernel'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
安裝時(shí)報(bào)錯(cuò),ipykernel不能卸載,我也嘗試過重新裝,一直報(bào)這個(gè)錯(cuò)誤。索性沒管它,直接再瀏覽器中重新運(yùn)行就可以正常運(yùn)行了。
這是修復(fù)后的運(yùn)行效果。

jupyter notebook 某個(gè)cell 一直在運(yùn)行
近期調(diào)試程序,發(fā)現(xiàn)一簡單的代碼一直在運(yùn)行,很長時(shí)間不終止,代碼如下:
whole_df=pd.read_csv(r'./train.csv') ? community=whole_df['COMMUNITY_ID'].unique() ? for community_id in community: ? ? ? temp=check_result[check_result['COMMUNITY_ID']==community_id] ? ? ? start=temp.index.tolist()[0] ? ? ? delanomaly_test(temp,start)?
其中delanomaly_test 是對測試數(shù)據(jù)進(jìn)行處理異常值的函數(shù),函數(shù)里有對形參temp進(jìn)行賦值的操作,而temp 是whole_df的切片,執(zhí)行后,出現(xiàn)了很多提示:
/usr/local/python3/lib/python3.6/site-packages/pandas/core/indexing.py:1763: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
一大串的全是提示,而且還一直擴(kuò)展向下,過了10分鐘,不再出現(xiàn)提示,但是這段cell 執(zhí)行符號(hào)里顯示‘*’,為一直在執(zhí)行,本身數(shù)據(jù)量不大,community 為200個(gè),check_result為8萬條,應(yīng)該2、3分鐘就結(jié)束了但是又過5分鐘還是‘*’號(hào),點(diǎn)‘Interrupt the kernel ’也是很長時(shí)間沒反應(yīng)。用寫標(biāo)準(zhǔn)輸出+寫文件的方式測試下:
whole_df=pd.read_csv(r'./train.csv')
?
community=whole_df['COMMUNITY_ID'].unique()
filename='proeceeing.txt'
?
with open(file_name,'w+') as f:
?
? ? f.write(file_name)
?
w=0 #進(jìn)度的變量
?
for community_id in community:
?
? ? if w%50==0:
?
? ? ? ? print('w=%s' %str(w)) #打印至標(biāo)準(zhǔn)輸出
?
? ? ? ? f=open(file_name,'a')
?
? ? ? ? f.write('\n ? ? '+str(w)+':')#寫入文件
?
? ? ? ? f.write(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) ?
?
? ? ? ? f.close()
?
? ? temp=check_result[check_result['COMMUNITY_ID']==community_id]
?
? ? start=temp.index.tolist()[0]
?
? ? delanomaly_test(temp,start)
?
? ? w=w+1
print('w=%s' %str(w)) #打印至標(biāo)準(zhǔn)輸出
?
f=open(file_name,'a')
?
print('w=%s' %str(w))
?
f.write('\n ? ? '+str(w)+':') #寫入文件
?
f.write(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
?
f.write('\n check_result executed ')
?
f.close()執(zhí)行后,文件內(nèi)容如下:
processing.txt
0:2021-08-25 21:14:38
50:2021-08-25 21:14:43
100:2021-08-25 21:14:49
150:2021-08-25 21:14:54
200:2021-08-25 21:15:00
check_result executed
看來這段代碼在一分鐘之內(nèi)已經(jīng)執(zhí)行完畢,再看標(biāo)準(zhǔn)輸出,還是有很多之前的提示,同時(shí)標(biāo)示進(jìn)度的w值里,只發(fā)現(xiàn)了三條:
w=0
w=50
w=100
再向后就只有提示,再向后提示也終止了
因此這段代碼一直執(zhí)行的可能原因是短時(shí)間內(nèi)寫大量內(nèi)容至標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)輸出緩沖區(qū)滿,無法打印提示和之后的內(nèi)容,但程序?qū)嶋H已執(zhí)行完畢。最后刪除delanomaly_test 函數(shù)里的切片賦值語句,發(fā)現(xiàn)這段代碼很快結(jié)束,至此問題有三個(gè):切片不可直接賦值,標(biāo)準(zhǔn)輸出不可靠,每個(gè)提示都要細(xì)看
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài)【推薦】
今天主要是來說一下怎么可視化來監(jiān)控你的爬蟲的狀態(tài)。文中通過實(shí)例代碼給大家分析了Python實(shí)現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài),感興趣的朋友一起看看吧2018-08-08
跨平臺(tái)python異步回調(diào)機(jī)制實(shí)現(xiàn)和使用方法
這篇文章主要介紹了python異步回調(diào)機(jī)制的實(shí)現(xiàn)方法,提供了使用方法代碼2013-11-11
Python實(shí)現(xiàn)模擬瀏覽器請求及會(huì)話保持操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)模擬瀏覽器請求及會(huì)話保持操作,結(jié)合實(shí)例形式分析了Python基于urllib與urllib2模塊模擬瀏覽器請求及cookie保存會(huì)話相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
Python實(shí)現(xiàn)視頻中添加音頻工具詳解
本文主要為大家介紹了Python中提供在無音頻的視頻中添加音頻的工具詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考一下2021-12-12
Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境
這篇文章主要介紹了Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
基于python實(shí)現(xiàn)生成指定大小txt文檔
這篇文章主要介紹了基于python實(shí)現(xiàn)生成指定大小txt文檔,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Datawhale練習(xí)之二手車價(jià)格預(yù)測
此篇文章是關(guān)于Datawhale練習(xí),代碼完整,但由于該數(shù)據(jù)集中數(shù)據(jù)特征較少(39維),以下可作為少量特征情況下的分析。當(dāng)特征數(shù)目過大(成千上萬)時(shí),需要繼續(xù)學(xué)習(xí)。需要的朋友可以參考下2021-04-04

