关闭python引用计数输出
所以,每当我在Python中做任何事情时,我总是得到这个refs count输出。例如:关闭python引用计数输出,python,Python,所以,每当我在Python中做任何事情时,我总是得到这个refs count输出。例如: xxxxx@li282-82:~$ 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]
xxxxx@li282-82:~$ 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]
xxxxx@li282-82:~$ logout
我怎么把它关掉 在我看来,您的解释器是用。要摆脱它,我认为您需要重新编译。来自
Misc/SpecialBuilds.txt
:
Py_REF_调试
启用聚合引用计数。这将安排外部参照总计 保存所有引用的计数,即所有对象的ob_refcnt之和。在一个 调试模式构建,这就是“8288”的来源 请注意,如果在不存储新对象时此计数增加, 可能是漏水了。但是,请记住,在交互模式下 名称“\”包含对上次显示结果的引用 Py_REF_DEBUG还将在每次decref后进行检查,以验证refcount是否没有 如果为负值,则会立即导致致命错误 特别手法:
Py_REF_DEBUG
还包含一些其他调试选项。但是每个人都是对的:不管怎样,你都有一个Python的调试版本。正如@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
请参阅:在解释器启动时是否设置了任何可能启用GC调试标志的运行程序?是否在编译Python时启用了一些调试标志?(只是猜测一下)。试着运行:
Python-S
See@alecxe,谢谢。我可以从源代码处重新安装Python吗?我一直认为执行sudo apt get install
比从源代码处编译以进行维护要好……我想我只是在使用默认的Python安装。可能已经升级了。Python路径是/usr/local/bin/Python
;如何重新编译?/usr/local/bin/python
从源代码编译的python的味道。请参阅:@JamesMills将重新编译它以破坏当前包?我应该再次链接一些库吗?特别是,我担心我的MySQL安装和其他东西。这是一个实时网站,我不希望任何宕机。不会有太多东西依赖于安装到/usr/local/lib
的库,当然也不会有太多东西依赖于Python库(.so文件)——除非你有用C/C++嵌入式Python编写的应用程序。您应该检查的是您站点上的其他应用程序/工具/web应用程序当前使用的是/usr/local/bin/python
。例如使用lsof
。@JamesMills--但是已经安装的第三方模块会被保留吗?如果它真的很关键,我可能会把一个新的安装在其他地方,测试该网站对新安装之前,推动生产。。。
sys.gettotalrefcount()
Return current total of all refcounts.
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