2015-11-13 148 views
1

兩個獨立的Python包裝已經作出了火力地堡REST API:區分具有相同名稱的Python模塊/以不同名稱安裝?

https://github.com/mikexstudios/python-firebase

https://pypi.python.org/pypi/python-firebase/1.2

兩者都有自己的長處和缺點,所以現在我想用一些API操作一個,和其他用於其他API動作,在同一程序中。問題是,安裝時它們都被稱爲firebase

是否可以通過pip安裝一個或兩個不同的名稱?如果不是,如果使用正確,import聲明是否具有區分的智能?

+0

http://stackoverflow.com/questions/3678402/install-two-python-modules-with-same-name的重複項? – Pyderman

回答

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 

但坦率地說,這是可怕的國際海事組織。

1

這是不可能與點。 PyPI上的所有軟件包都有唯一的名稱。包通常需要並相互依賴,並且假定名稱不會改變。

最好的辦法是將庫中的所有代碼複製到你的代碼庫然後導入它。

相關問題