用 windows 写 Python 真的大丈夫?

2017-10-18 11:15:06 +08:00
 takanasi

经常遇到诡异的问题,换 ubuntu 就没事了。 比如说:

import multiprocessing, time, queue

# g_queue = queue.Queue()
g_queue = multiprocessing.Queue()
c = multiprocessing.cpu_count()

def init_queue():
    print("init g_queue start")

    while not g_queue.empty():
        g_queue.get()

    for _index in range(10):
        g_queue.put(_index)

    print("init g_queue end")
    
def task_io(task_id):
    print("IOTask[%s] start" % task_id)

    while not g_queue.empty():
        try:
            data = g_queue.get(block=True, timeout=1)
            print("IOTask[%s] get data: %s" % (task_id, data))
            time.sleep(1)
        except Exception as excep:
            print("IOTask[%s] error: %s" % (task_id, str(excep)))

    print("IOTask[%s] end" % task_id)
    
    
if __name__ == '__main__':
    print("cpu count:", multiprocessing.cpu_count(), "\n")
    print("========== 多进程执行 IO 密集型任务 ==========")
    init_queue()
    time_0 = time.time()
    process_list = [multiprocessing.Process(target=task_io, args=(i,)) for i in range(c)]

    for p in process_list:
        p.start()

    for p in process_list:
        if p.is_alive():
            p.join()

    print("结束:", time.time() - time_0, "\n")

完全拿不到 queue 里面的东西,直接当空气了。

9786 次点击
所在节点    Python
53 条回复
PythonAnswer
2017-10-18 19:22:52 +08:00
python 对 windows 支持很好的
lslqtz
2017-10-18 19:22:58 +08:00
PHP 还有小部分兼容性问题呢
你开心就好
megachweng
2017-10-18 20:06:32 +08:00
PyQt 也是,在 Mac linux 下都没问题,拿到 windows 就 c000005😌
focusheart
2017-10-18 22:52:48 +08:00
@Lucius 有道理!
wolong
2017-10-19 07:15:13 +08:00
windows 下开发 python,只要不是在 cmd 下运行 py,其实还好。
guofs
2017-10-19 07:48:05 +08:00
这跟在 v2 或内地用繁体一样,你高兴就好
x7395759
2017-10-19 09:01:03 +08:00
知乎的技术氛围也配来 V2 讨论?
tbag781623489
2017-10-19 09:19:13 +08:00
我有个疑问: win10 的 bash 能不能达到原生 ubuntu 的效果?
ooh
2017-10-19 09:22:45 +08:00
给你说个常见的不同吧,大小写敏感 滑稽
ranwu
2017-10-19 11:34:18 +08:00
遇到问题解决问题就行了。
Arnie97
2017-10-19 12:19:55 +08:00
既不是 Windows 的锅也不是 Python 的锅,代码本身不考虑可移植性的话,换哪个平台都一样
sixand
2017-10-19 22:15:23 +08:00
docker 能帮到你。。我在 windows 下就是用 docker 来执行的。
allgy
2017-10-30 18:19:03 +08:00
微软厉害还是你厉害?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/398574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX