我有一个长期运行的Python服务器,并希望能够在不重新启动服务器的情况下升级服务.这样做的最佳方法是什么?
if foo.py has changed:
unimport foo <-- How do I do this?
import foo
myfoo = foo.Foo()
Run Code Online (Sandbox Code Playgroud) 我得到了引用计数的概念
所以,当我执行"del astrd"时,引用计数降为零,astrd被gc收集?
这是示例代码.这些代码是我在昨天的问题之后开发的:链接文本
one.py:
def abc():
print "Hello"
print "123"
print '345'
Run Code Online (Sandbox Code Playgroud)
two.py:
import one
#reload(one)
#def defg():
one.abc()
Run Code Online (Sandbox Code Playgroud)
three.py:
import os,sys,gc
from time import sleep
import two
#reload(two)
#two.defg()
sleep(20)
directory = os.listdir('.')
for filename in directory:
if filename[-3:] == 'pyc':
print '- ' + filename
print sys.getrefcount(filename)
file_name = os.path.splitext (filename)[0]
del file_name # remove the local reference
del sys.modules[os.path.splitext (filename)[0]] # removes import
gc.collect() # garbage collect
#del sys.modules[filename]
#del filename
#os.remove(filename)
Run Code Online (Sandbox Code Playgroud)
我在three.py中所做的是对还是不对?有没有必要的步骤?如果是,为什么?
请帮我解决这个问题.