为Firebase REST API制作了两个单独的Python包装器:
https://github.com/mikexstudios/python-firebase
https://pypi.python.org/pypi/python-firebase/1.2
两者都有它们的优点和缺点,所以现在我想使用一个来执行某些API操作,而将其他用于其他API操作,同样程序即可。问题是,安装后,它们都被称为firebase
。
pip
是否可以使用其他名称安装一个或两个?如果没有,import
语句是否具有区分的智能,如果使用正确的话?
答案 0 :(得分:1)
点数不可能。 PyPI上的所有包都有唯一的名称。软件包通常需要并相互依赖,并假设名称不会更改。
最好的办法是将库中的所有代码复制到代码库中,然后导入它。
答案 1 :(得分:1)
导入模块时,python按顺序搜索sys.path中的路径,并在第一次匹配时停止。因此,简单的import firebase
将无效。
选择其中一种方法有一个脆弱的解决方案,但您无法同时导入它们。
无论如何,要选择其中一个,您只需导入包的内部名称即可。如果我们看看这两个包的暴露名称,我们得到:
https://github.com/mikexstudios/python-firebase
firebase/
__init__.py
Firebase
requests
urlparse
os
json
https://github.com/ozgur/python-firebase
firebase/
__init__.py
atexit
process_pool
close_process_pool
urlparse
json
FirebaseTokenGenerator
http_connection
process_pool
JSONEncoder
...
因此,您可以通过导入仅存在于其中的名称来选择第一个:
from firebase import requests
或者第二个,使用相同的推理:
from firebase import atext
但坦率地说,这是可怕的IMO。