python中遇到的一些問題及解決方案
不可避免經常會碰到一些小問題,但會耽誤自己很長時間,希望對大家有所幫助。
1. SyntaxError:
Non-UTF-8 code starting with '\xd7' in file 0807_multiprocessing例項.py on line 7, but no encoding declared
; see http://python.org/dev/peps/pep-0263/ for details
解決方法:第一行新增
#coding=gbk
如果新增 coding=utf-8就會顯示(unicode error) 'utf-8' codec can't decode byte 0xd7
2. E325:注意
發現交換檔案...
解決方法:產生問題的原因是有個和檔名一樣的檔案,一般是異常情況下出現的,沒有儲存,刪掉異常檔案就好了 rm xxx.py.swp 就好了
3. 位、位元、位元組的區分
二進位制位(binary digit),簡稱 位(bit),音譯位元,表示二進位制單位,是計算機內部資料儲存的最小單位,
位元組(Byte),習慣用B表示,是計算機處理資料的基本單位,以位元組為單位儲存和解釋資訊,一個位元組等於8個位,一個位元組可以存入一個ASCII碼,2個位元組存放一個漢字國標碼。
4. cmd中python如何退出?
Ctrl+z
5. name error :name xxx is not defined
變數名錯誤,但是肉眼怎麼也看不出來錯在哪裡,以後就自動補全Ctrl + N
6.sublime中動態調整字型大小
Ctrl + 滾輪
7. Ubuntu的終端字型大小調節
Ctrl + shift + +/- ?
8.python的命令列退出機制
在Windows中,按Ctrl+Z,再按回車退出。在Linux中,按Ctrl+D退出。
9. RecursionError: maximum recursion depth exceeded while calling a Python object
報錯提示超過最大遞迴深度。解決方式為加入如下指令碼:
import sys sys.setrecursionlimit(1000000) #例如這裡設定為一百萬
10. Ubuntu中apt-get install安裝軟體,顯示“E:無法定位軟體包”
需要更新下軟體源,sudo apt-get update
11. pycharm裡面如何放大縮小字型?
12. 新式類和舊式類
Python 2.x中預設都是經典類,只有顯式繼承了object才是新式類,python3都是新式類
13.Ubuntu 16.04 遇到的執行命令 sudo apt-get update 時出現E: 無法下載
http://ppa.launchpad.net/fcitx-team/nightly/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found,如下圖所示:
解決方案:刪除對應的ppa 第一步:
cd /etc/apt/sources.list.d
第二步:在該目錄下ls,即可以看到對應的無法下載的fcitx-team-ubuntu-nightly-xenial.list,刪除該.list即可(安全起見,可以進行新增字尾.bak的備份)
mv fcitx-team-ubuntu-nightly-xenial.list fcitx-team-ubuntu-nightly-xenial.list.bak
第三步:檢查問題是否解決 在終端中輸入命令:
sudo apt-get update
14. 在robomongo(也就是robo3T)用aggregate的$skip和$limit發生的bug :
Error: Line 9: Unexpected token {
db.stu.aggregate([
{$match:{age:{$gt:20}}},
{$group:{
_id:'$gender',
counter:{$sum:1}
}},
{$project:{_id:1,counter:1}},
{$sort:{_id:-1}}
{$skip:1},
{$limit:1}
])
解決方案: {$sort:{_id:1}}後邊少加了逗號。。。
15.mongoDB的身份驗證禁用並啟用問題
具體描述:開始階段mongoDB配置是auth disable ,建立超級管理員之後,按照網上搜索的答案,net stop mongodb,vim mongod.cfg修改配置啟用授權,再net start mongodb,結果:服務沒有響應控制功能。只能講身份驗證配置禁用才可以開啟mongod和mongo
解決方案:暫無,在stackoverflow上提問了
16. import引用問題
PEP 328裡面說的很詳細了,基多的解決方案 例子:
package/
__init__.py
subpackage1/
__init__.py
moduleX.py
moduleY.py
subpackage2/
__init__.py
moduleZ.py
moduleA.py
Assuming that the current file is either moduleX.py or subpackage1/__init__.py, following are correct usages of the new syntax:
from .moduleY import spam
from .moduleY import spam as ham
from . import moduleY
from ..subpackage1 import moduleY
from ..subpackage2.moduleZ import eggs
from ..moduleA import foo
from ...package import bar
from ...sys import path
17. scrapy多個items類piplines如何分別儲存
見簡書,用if isinstance(item, items.py裡面的類)進行判斷就可以了。