[英]Distinguishing between Python modules of the same name / installing with different name?
為 Firebase REST API 制作了兩個單獨的 Python 包裝器:
https://github.com/mikexstudios/python-firebase
https://pypi.python.org/pypi/python-firebase/1.2
兩者都有其優點和缺點,所以現在我想在同一個程序中將一個用於某些 API 操作,另一個用於其他 API 操作。 問題是,安裝后,它們都被稱為firebase
。
是否有可能pip
安裝一個或兩個以不同的名稱? 如果沒有,如果使用得當, import
語句是否有智能區分?
導入模塊時,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。
這對於 pip 是不可能的。 PyPI 上的所有包都有唯一的名稱。 包通常需要和相互依賴,並假設名稱不會改變。
您最好的選擇是將庫中的所有代碼復制到您的代碼庫中,然后將其導入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.