我正在編寫乙個依賴於file-magic的library,它對大多數平台都很好,但是在alpine linux中,檔案魔法不起作用,所以我需要使用python-magic庫。在
現在我知道了如何編寫自己的**來處理不同的python庫api,但是我不知道如何編寫setup.cfg或{}以根據我們正在進行安裝的系統有不同的需求。在
我想最好的選擇是使用pep 508規則,但我不知道如何用那種語法說「libmagic like alpine」或其他什麼,更不用說在包的設定.py. 實際上,如果不安裝file-magic並看著它死掉,我甚至不知道如何區分兩種架構之間的區別:-(
當然,這類事情一定有最佳實踐嗎?在
更新從下面的tim那裡得到了一些更廣泛的理解之後,我拼湊出了這個方法,讓它發揮作用:def get_requirements():
alpine is problematic in how it doesn't play nice with file-magic -- a
work-around for this, we swap out file-magic for python-magic in the alpine
case.
config = configparser.configparser()
config.read("setup.cfg")
requirements = config["options"]["install_requires"].split()
os_id = none
try:
with open("/etc/os-release") as f:
os_id = [_ for _ in f.readlines() if _.startswith("id=")][0] \
.strip() \
.replace("id=", "")
except (filenotfounderror, oserror, indexerror):
pass
if os_id == "alpine":
requirements[1] = "python-magic>=0.4.15"
return requirements
setuptools.setup(install_requires=get_requirements())
這允許使用setup.cfg的宣告性語法,但是如果安裝目標是乙個alpine系統,則調整install_requires值。在
python工作要求
python 熟練運用python,熟悉任一常見資料庫,熟悉任一常見介面框架 了解c 了解ios和android等多平台手遊開發環境 熟悉常用資料結構 演算法,良好的 風格和程式設計習慣,了解設計模式 熟悉 python web開發框架,如django flask tornado 熟悉 postgr...
python 語法格式要求
問題 乙個python指令碼,本來都執行好好的,然後寫了幾行 而且也都確保每行都對齊了,但是執行的時候,卻出現語法錯誤 indentationerror unindent does not match any outer indentation level 解決過程 1.對於此錯誤,最常見的原因是,...
針對python輸入要求
a b input while b 1 指隨意使用乙個值作為乙個標誌,來進行控制輸入的行數。在最後一行輸入相應終止輸入的標誌 b input a b int input for i in range 0,b for j in input split 以空格隔開每乙個資料,也可以使用其他方式隔開,據題...