Python模块导入,Windows和Linux上的差异

时间:2016-10-26 09:40:45

标签: python linux windows import

我有一个包装函数,它将通用解析函数的结果放入队列

@font-face {
    font-family: 'lovelyFont';
    src: url(../'fonts/lovely_font.eot'); 
    src: 
        local('lovelyFont'),
        local('lovelyFont'),
        url('fonts/lovelyFont.otf') 
        format('opentype');
}

div { font-family: 'lovelyFont', sans-serif; }

作为参数传递的解析函数是使用

从不同的模块导入的
def parse_threaded(parsefunction, response_q, parsed_q, stop_event):
while not (stop_event.is_set() and response_q.empty()):
    if response_q.qsize() > 0:
        response = response_q.get()
        parsed = parsefunction(response)
        response_q.task_done()
        if parsed:
            parsed_q.put(parsed)

稍后可以使用以下代码

传递这些解析函数
import parser

正如您所看到的,我将parse函数(parse_beer)作为参数传递,但是这仅适用于使用Python 3.5的Windows,在Linux上使用相同的Python版本我需要执行以下代码:

beer_parse_worker = threading.Thread(target=parse_threaded, args=(parse_beer, beer_response_q, beer_q,stop_beer_parse_worker))
beer_parse_worker.start()

所以在Linux中我需要引用具有完全限定名称的函数,所以 parser.parse_beer ,在Windows中它需要只是 parse_beer

任何人都知道为什么会这样? 感谢

0 个答案:

没有答案