小编evg*_*evg的帖子

获取功能导入路径

from pack.mod import f
Run Code Online (Sandbox Code Playgroud)

如何从对象f获取有关导入的信息 - 'pack.mod'

我可以使用它,f.__module__ 但如果函数def在模块中我得到这个属性(f.__module__)它返回'__main__'.但我需要真正的道路 - 'pack.mod'

我找到了这种方式来获取这些信息:

inspect.getmodule(f).__file__
Run Code Online (Sandbox Code Playgroud)

然后我可以开始分从路径sys.path,更换/.并获得类似的路径- 'pack.mod' 但可能存在一些更便捷的途径?

python import function path

17
推荐指数
2
解决办法
2万
查看次数

start-stop-daemon和python

我正在尝试使用start-stop-daemon启动python脚本:

sudo /sbin/start-stop-daemon --start --pidfile /home/loop.pid \ 
--user www-data --group www-data -b --make-pidfile --chuid www-data \
--exec /usr/bin/python /home/loop.py --verbose
Run Code Online (Sandbox Code Playgroud)

但我的进程中没有python脚本.我做错了什么?

loop.py:

import time
while True:
    print "working..."
    time.sleep(3)
Run Code Online (Sandbox Code Playgroud)

python cron start-stop-daemon

10
推荐指数
1
解决办法
4784
查看次数

asyncore python挂起

我尝试用asyncore做简单的异步http客户端:这段代码工作正常,输出是(快速执行):

www.gmail.com  :  recv http code:  301
www.yandex.ru  :  recv http code:  200
www.python.org  :  recv http code:  200
www.google.ru  :  recv http code:  200
www.gravatar.com  :  recv http code:  302
www.com.com  :  recv http code:  302
www.yahoo.com  :  recv http code:  302
www.bom.com  :  recv http code:  301
Run Code Online (Sandbox Code Playgroud)

但是,与我不存在主机的取消注释:

#c = AsyncHTTP('http://www.no-such-host.ru') #!this line breaks execution!
Run Code Online (Sandbox Code Playgroud)

执行中断,代码挂起一段时间,输出部分数据并挂起,没有最后的数据输出:

connection error: [Errno -5] No address associated with hostname
www.gmail.com  :  recv http code:  301
www.yandex.ru  :  recv http code:  200
www.yahoo.com …
Run Code Online (Sandbox Code Playgroud)

python asyncore

5
推荐指数
1
解决办法
909
查看次数

按字符串名称获取修饰的函数对象

def log(func):
    def wraper(*a, **kw):   
        return func(*a, **kw)
    return wraper

@log
def f():
    print 'f'


print locals()['f'] # - prints <function wraper at 0x00CBF3F0>.
Run Code Online (Sandbox Code Playgroud)

你如何获得真正的f对象(不是装饰器包装)?

python string function decorator

1
推荐指数
2
解决办法
1065
查看次数