Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python导入firebase模块导致程序意外循环_Python 2.7_Firebase - Fatal编程技术网

Python 2.7 Python导入firebase模块导致程序意外循环

Python 2.7 Python导入firebase模块导致程序意外循环,python-2.7,firebase,Python 2.7,Firebase,我使用的是Python2.7和PythonFirebase 1.2 如果我们评论firebase导入,那么它只给出一次输出,或者多次给出输出 from firebase import firebase print "result" 输出: result result result result 那个firebase模块是由糟糕的程序员编写的,因为它执行的任务不是您明确要求的。出于这个原因,我建议任何人都不要使用该模块,因为你无法知道他们的代码中可能还有什么其他陷阱。当然,他们可能认为这种行

我使用的是Python2.7和PythonFirebase 1.2

如果我们评论firebase导入,那么它只给出一次输出,或者多次给出输出

from firebase import firebase

print "result"
输出:

result
result
result
result

那个
firebase
模块是由糟糕的程序员编写的,因为它执行的任务不是您明确要求的。出于这个原因,我建议任何人都不要使用该模块,因为你无法知道他们的代码中可能还有什么其他陷阱。当然,他们可能认为这种行为是方便的,但方便就是一切,只是打破了程序员的期望(这是每个模块编写者必须遵守的一条规则),如果方便的话,这个问题就不存在了。他们确实说它严重依赖于多处理,但他们没有提到你在这方面没有发言权:

当出现并发时,接口严重依赖于标准多处理库。创建异步调用时,会创建一个按需进程池,异步方法由池中的一个空闲进程执行。池将保持活动状态,直到主进程死亡。因此,每次触发异步调用时,您总是使用相同的池。当方法返回时,池进程将返回值发送回提供的回调函数中的主进程

所以,所有这些话。。。这是因为该模块的主
\uuuuu init\uuuuuuuuuy.py
导入了其
异步.py
模块,该模块又创建了一个
多处理.Pool
(设置为其
\uprocess\upool
)和5个固定插槽,并且如果不使用它,您将获得
脚本的5个额外进程-因此,它打印出
result
6次(主进程和5个子进程)

底线-不要使用此模块。还有其他选择,但是如果您必须使用主进程检查来保护您的代码:

if __name__ == "__main__":
    print("result")

它仍然会生成5个子进程,并等待它们全部完成(这相当快),但至少不会执行您的保护代码。

I将async.py文件中的值从5修改为0。执行后,它仍然会给出6次输出。请帮助我们您没有更改正确的文件,因为
multiprocessing.Pool
会抱怨最小工作人数为
1
。阻止它的唯一方法是使用如上所述的防护-是的,它仍然会产生不需要的进程,但至少它不会执行任何操作(可能会改变模块的愚蠢行为并使其无法使用),无论哪种方式,都不要改变模块的行为,改变模块!例如,我们尝试了Pyfirebase。但是如果我们想使用firebase应用程序,我们如何从Pyfirebase模块使用它。firebase_2=firebase。firebase应用程序(“”,无)它使用firebase。我们如何使用Pyfirebase使用相同的firebase应用程序。请帮助我们