2014-01-10 49 views
4

因此,每當我在Python中執行任何操作時,我都會得到這個參考計數輸出。例如:關閉python引用計數輸出

[email protected]:~$ python 
Python 2.7.3 (default, Feb 28 2013, 20:42:30) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
[40347 refs] 
>>> django.VERSION 
(1, 5, 2, 'final', 0) 
[40349 refs] 
>>> 
[40349 refs] 
[19961 refs] 
[email protected]:~$ logout 

如何關閉該功能?

+2

你有什麼設置運行在解釋器啓動時可能會啓用GC調試標誌? – user2357112

+3

你是否編譯過Python,並打開了一些調試標誌? (*只是猜測*)。 –

+0

嘗試運行:''Python -S'' –

回答

3

它看起來像我的解釋器編譯與debug flag。爲了擺脫它,我認爲你需要重新編譯。

+0

我想我只是使用默認的Python安裝。可能已升級它。 Python路徑是'/ usr/local/bin/python';我該如何重新編譯? – Sidd

+0

從源代碼編譯的''/ usr/local/bin/python''的氣味。請參閱:http://docs.python.org/2/using/unix。html#building-python –

+0

@JamesMills將重新編譯它打破當前包?我應該再次鏈接一些圖書館嗎?特別是,我擔心我的MySQL安裝和其他東西。這是一個實時網站,我不想要任何停機。 – Sidd

2

Misc/SpecialBuilds.txt

Py_REF_DEBUG


打開總引用計數。這樣安排外部_Py_RefTotal 持有所有引用的計數,即所有對象的ob_refcnt總和。在 調試模式的構建,這哪裏是「8288」來自於

>>> 23 
23 
[8288 refs] 
>>> 

注意,如果此計數增加,當你不存儲離開新對象, 有可能是泄漏。但請記住,在交互模式下,名稱「_」的特殊 保留對所顯示的最後結果的引用!

Py_REF_DEBUG還會在每次遞減之後檢查以確認引用計數沒有 變爲負數,並且如果它具有立即致命錯誤。

特別的噱頭:

sys.gettotalrefcount() 
    Return current total of all refcounts. 

Py_REF_DEBUG暗示通過一些其他的調試選項。但是每個人都是正確的:不知何故或其他你有一個Python的調試版本。

0

正如@mgilson所建議的那樣,您可能會安裝源代碼編譯的Python(暗示爲/usr/local/bin/python)。如果你想從源代碼重新構建的Python,去下載的你後的版本最新的源代碼,並按照這些粗糙說明:

tar jxvf Python-x.y.z.tar.bz2 
cd Python-x.y.z 
./configure --prefix=/usr/local \ 
      --mandir=/usr/local/man \ 
      --enable-shared \ 
      --with-threads \ 
      --enable-ipv6 \ 
      --with-dbmliborder=gdbm 
make 
make install 

參見:http://docs.python.org/2/using/unix.html#building-python