python瀛︿範:鍩虹姒傚康,,鏍囩锛?/p>Py


鏍囩锛?/p>

Python 鍖呯鐞嗗伐鍏疯В鎯?/a>

python packaging

涓€銆佸洶鎯?/h2>

浣滀负涓€涓?Python 鍒濆鑰咃紝鎴戝湪鍖呯鐞嗕笂鎰熷埌鐩稿綋鐤戞儜锛堝棷锛屾槸鍥版儜锛夈€備富瑕佽〃鐜板湪涓嬮潰鍑犱釜鏂归潰锛?/p>杩欏嚑涓寘绠$悊宸ュ叿鏈変粈涔堜笉鍚岋紵

* distutils

* setuptools

* distribute

* disutils2

* distlib

* pip

2. 浠€涔堟椂鍊欒鐢╬ip锛屼粈涔堟椂鍊欒鐢?setup.py 锛屽畠浠湁鍏崇郴涔堬紵

3. easy_install 銆?ez_setup.py 銆?setup.py 銆?setup.cfg 鍒嗗埆閮芥槸骞插暐鐨勶紵

4. wheel 鍜?pip 鐨勫叧绯伙紵

5. Egg 鍜?whl 鐨勫叧绯伙紵

6. 濡備綍鍙戝竷鑷繁鐨勬ā鍧楋紙鍙戝竷鍒癙yPI锛夛紵

7. 濡備綍杩涜妯″潡鐨勭鏈夊彂甯冿紙涓嶅彂甯冨埌PyPI锛夛紵

涓轰簡寮勬竻杩欎簺闂锛屾垜鎵句簡璁稿璧勬枡銆傛渶鍚庡彂鐜版渶濂界殑璧勬枡杩樻槸 python 鐨勫畼鏂规枃妗c€?/p>

涓嬮潰鏄槄璇讳簡鎵€鏈夋垜鎵惧埌鐨勮祫鏂欏悗鐨勪竴涓€荤粨锛屽笇鏈涜兘甯埌鍑犱釜鏈堝悗鍙堟妸杩欎簺鍏ㄩ儴蹇樺厜鐨勯偅涓嚜宸便€?/p>

浜屻€乸ython 鍖呯鐞嗗伐鍏峰ぇ涔辨枟

鐢ㄦ椂闂撮『搴忔潵鎻忚堪涔辨枟杩囩▼銆?/p>

1. distutils

distutils 鏄?python 鏍囧噯搴撶殑涓€閮ㄥ垎锛?000骞村彂甯冦€備娇鐢ㄥ畠鑳藉杩涜 python 妯″潡鐨?瀹夎 鍜?鍙戝竷 銆?/p>

setup.py 灏辨槸鍒╃敤 distutils 鐨勫姛鑳藉啓鎴愶紝鎴戜滑鍙互鐪嬩竴涓畝鍗曠殑 setup.py 鐨勪緥瀛愩€?/p>

鍦ㄨ繖閲屽彲浠ョ湅鍒板叧浜?setupt.py 鏍煎紡鐨勬墍鏈夎缁嗘弿杩帮細 Writing the Setup Script 銆?/p>

瑕佸畨瑁呬竴涓ā鍧楀埌褰撳墠鐨?python 鐜涓紝鍙互浣跨敤杩欎釜妯″潡鎻愪緵鐨?setup.py 鏂囦欢锛?nbsp;

Python

python setup.py install

python setup . py install

涓嬮潰鐨勪唬鐮佷細鍙戝竷涓€涓?python 妯″潡锛屽皢鍏舵墦鍖呮垚 tar.gz 鎴栬€?zip 鍘嬬缉鍖咃細

Python

python setup.py sdist

python setup . py sdist

鐢氳嚦鑳芥墦鍖呮垚 rpm 鎴栬€?exe 瀹夎鍖咃細

Python

python setup.py bdist_rpm
python setup.py bdist_wininst

python setup . py bdist_rpm

python setup . py bdist_wininst

2. setuptools 鍜?distribute

setuptools 鏄竴涓负浜嗗寮?distutils 鑰屽紑鍙戠殑闆嗗悎锛?004骞村彂甯冦€傚畠鍖呭惈浜?easy_install 杩欎釜宸ュ叿銆?/p>

ez_setup.py 鏄?setuptools 鐨勫畨瑁呭伐鍏枫€?ez 灏辨槸 easy 鐨勭缉鍐欍€?/p>

绠€鍗曠殑璇达紝setuptools 鏄竴涓」鐩殑鍚嶇О锛屾槸鍩虹缁勪欢銆傝€?easy_install 鏄繖涓」鐩腑鎻愪緵鐨勫伐鍏凤紝瀹冧緷璧栧熀纭€缁勪欢宸ヤ綔銆?/p>

涓轰簡鏂逛究鎻忚堪锛屼笅闈㈡枃绔犱腑鎻愬埌鐨?setuptools 琚涓轰笌 easy_install 鍚屼箟銆?

浣跨敤 setuptools 鍙互鑷姩 涓嬭浇銆佹瀯寤恒€佸畨瑁呭拰绠$悊 python 妯″潡銆?/p>

渚嬪锛屼粠 PyPI 涓婂畨瑁呬竴涓寘锛?/p>

Python

easy_install SQLObject

easy_install SQLObject

涓嬭浇涓€涓寘鏂囦欢锛岀劧鍚庡畨瑁呭畠锛?/p>

Python

easy_install http://example.com/path/to/MyPackage-1.2.3.tgz

easy_install http : / / example . com / path / to / MyPackage - 1.2.3.tgz

浠庝竴涓?.egg 鏍煎紡瀹夎锛?/p>

Python

easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg

easy_install / my_downloads / OtherPackage - 3.2.1 - py2 . 3.egg

distribute 鏄?setuptools 鐨勪竴涓垎鏀増鏈€傚垎鏀殑鍘熷洜鍙兘鏄湁涓€閮ㄥ垎寮€鍙戣€呰涓?setuptools 寮€鍙戝お鎱簡銆備絾鐜板湪锛宒istribute 鍙堝悎骞跺洖浜?setuptools 涓€傚洜姝わ紝鎴戜滑鍙互璁や负瀹冧滑鏄悓涓€涓笢瑗裤€備簨瀹炰笂锛屽鏋滀綘鏌ョ湅涓€涓?easy_install 鐨勭増鏈紝浼氬彂鐜板畠鏈川涓婂氨鏄?distribute 銆?/p>

Python

# easy_install --version
distribute 0.6.28

# easy_install --version

distribute 0.6.28

3. Eggs

Eggs 鏍煎紡鏄?setuptools 寮曞叆鐨勪竴绉嶆枃浠舵牸寮忥紝瀹冧娇鐢?.egg 鎵╁睍鍚嶏紝鐢ㄤ簬 Python 妯″潡鐨勫畨瑁呫€?/p>

setuptools 鍙互璇嗗埆杩欑鏍煎紡銆傚苟瑙f瀽瀹冿紝瀹夎瀹冦€?/p>

鎯宠璇︾粏浜嗚В锛屽彲浠ョ湅鐪嬭繖绡囷細 The Quick Guide to Python Eggs 銆?/p>

Eggs are to Pythons as Jars are to Java..

4. pip

娉ㄦ剰锛屼粠姝ゅ寮€濮嬶紝 easy_install 鍜?setuptools 涓嶅啀鍚屼箟銆?

pip 鏄洰鍓?python 鍖呯鐞嗙殑浜嬪疄鏍囧噯锛?008骞村彂甯冦€傚畠琚敤浣?easy_install 鐨勬浛浠e搧锛屼絾鏄畠浠嶆湁澶ч噺鐨勫姛鑳藉缓绔嬪湪 setuptools 缁勪欢涔嬩笂銆?/p>

pip 甯屾湜涓嶅啀浣跨敤 Eggs 鏍煎紡锛堣櫧鐒跺畠鏀寔 Eggs锛夛紝鑰屾洿甯屾湜閲囩敤“婧愮爜鍙戣鐗?rdquo;锛堜娇鐢?python setup.py sdict 鍒涘缓锛夈€傝繖鍙互鍏呭垎鍒╃敤 Requirements File Format 鎻愪緵鐨勬柟渚垮姛鑳姐€?/p>

pip 鍙互鍒╃敤 requirments.txt 鏉ュ疄鐜板湪渚濊禆鐨勫畨瑁呫€傚湪 setup.py 涓紝涔熷瓨鍦ㄤ竴涓?install_requires 琛ㄦ潵鎸囧畾渚濊禆鐨勫畨瑁呫€傚畠浠殑鍖哄埆鍦ㄥ摢閲岋紵鍙互鐪嬭繖绡囨枃绔狅細 setup.py vs requirements.txt 锛堜腑鏂囩増锛?/a> 銆?/p>

pip 鏀寔 [git/svn/hg 绛夋祦琛岀殑 VCS 绯荤粺]锛屽彲浠ョ洿鎺ヤ粠 gz 鎴栬€?zip 鍘嬬缉鍖呭畨瑁咃紝鏀寔鎼滅储鍖咃紝浠ュ強鎸囧畾鏈嶅姟鍣ㄥ畨瑁呯瓑绛夊姛鑳姐€?/p>

pip vs easy_install 璇︾粏浠嬬粛浜嗕袱鑰呯殑涓嶅悓銆傚畠浠彲浠ヨ鏄悇鍗犺儨鍦猴紝浣?pip 鏄庢樉浼樺娍鏇村ぇ銆?/p>

5. wheel

wheel 鏈川涓婃槸涓€涓?zip 鍖呮牸寮忥紝瀹冧娇鐢?.whl 鎵╁睍鍚嶏紝鐢ㄤ簬 python 妯″潡鐨勫畨瑁咃紝瀹冪殑鍑虹幇鏄负浜嗘浛浠?Eggs銆?/p>

wheel 杩樻彁渚涗簡涓€涓?bdist_wheel 浣滀负 setuptools 鐨勬墿灞曞懡浠わ紝杩欎釜鍛戒护鍙互鐢ㄦ潵鐢熸垚 wheel 鍖呫€?/p>

pip 鎻愪緵浜嗕竴涓?wheel 瀛愬懡浠ゆ潵瀹夎 wheel 鍖呫€傚綋鐒讹紝闇€瑕佸厛瀹夎 wheel 妯″潡銆?/p>

setup.cfg 鍙互鐢ㄦ潵瀹氫箟 wheel 鎵撳寘鏃跺€欑殑鐩稿叧淇℃伅銆?/p>

Wheel vs Egg 璇︾粏浠嬬粛浜?wheel 鍜?Eggs 鏍煎紡鐨勫尯鍒紝寰堟樉鐒讹紝wheel 浼樺娍鏄庢樉銆?/p>

Python Wheels 缃戠珯灞曠ず浜嗕娇鐢?Wheels 鍙戣鐨?python 妯″潡鍦?PyPI 涓婄殑鍗犳湁鐜囥€?/p>

pypip.in 涔熸敮鎸?wheel銆?/p>

6. distutils2 鍜?distlib

distutils2 琚璁′负 distutils 鐨勬浛浠e搧銆備粠2009骞村紑鍙戝埌2012骞淬€傚畠鍖呭惈鏇村鐨勫姛鑳斤紝骞跺笇鏈涗互 packaging 浣滀负鍚嶇О杩涘叆 python 3.3 鎴愪负鏍囧噯搴撶殑涓€閮ㄥ垎銆備絾杩欎釜璁″垝 鍚庢潵鍋滄粸浜?/a> 銆?/p>

distlib 鏄?distutils2 鐨勯儴鍒嗭紝瀹冧负 distutils2/packaging 鎻愪緵鐨勪綆绾у姛鑳藉鍔犻珮绾?API锛屼娇鍏朵究浜庝娇鐢ㄣ€?/p>

杩欓噷 浠嬬粛浜?distlib 娌℃湁杩涘叆 python 3.3 鏍囧噯搴撶殑涓€浜涘師鍥犮€?/p>

鍥犳锛屽彲浠ユ殏鏃朵笉蹇呬簡瑙h繖涓や釜宸ュ叿锛岄潤瑙傚叾鍙樺嵆鍙€?/p>

涓夈€佸伐鍏烽€夋嫨

濡傛灉浠旂粏鐪嬭繃涓婇潰鐨勪贡鏂楀唴瀹癸紝鎴戠浉淇′綘宸茬粡娓呮褰撳墠搴旇濡備綍閫夋嫨浜嗐€?/p>

瀵逛簬鎴戣繖鏍峰垰鍒氬紑濮嬬殑鏂版墜鏉ヨ锛岃嚜鐒舵槸浣跨敤 pip 鑰屼笉浣跨敤 easy_install 浜嗐€?/p>

濡傛灉鍙戝竷妯″潡锛屽綋鐒舵槸浣跨敤 wheel 鏍煎紡銆?/p>

鍥涖€佸彂甯冭嚜宸辩殑妯″潡

瀵逛簬 python3 绋嬪簭鍛樻潵璇达紝褰撶劧搴旇鍏堢湅杩欎竴绡囷細 Distributing Python Modules 銆?/p>

鍙﹀锛?Tutorial on Packaging and Distributing Projects 涔熻冻澶熻缁嗗拰瀹樻柟銆?/p>

鑰?Python2 绋嬪簭鍛樺垯搴旇鐪嬭繖绡?Distributing Python Modules 銆?/p>

褰撶劧锛宻etuptools 鐨勫畼鏂规枃妗d篃鏄笉閿欑殑鏁欑▼锛?Building and Distributing Packages with Setuptools 銆?/p>

杩欑瘒鏁欑▼鍙互鐢ㄦ潵鍏ラ棬锛?Sharing Your Labor of Love: PyPI Quick and Dirty

鑷充簬濡備綍鍙戝竷鑷繁鐨勬ā鍧楀埌 PyPI 鎴栬€呮惌寤鸿嚜宸辩殑绉佹湁鍖呯鐞嗘湇鍔″櫒锛屼笂闈㈢殑鏂囩珷宸茬粡璁插緱闈炲父娓呮浜嗐€?/p>

浜斻€佸紩鐢?/h2>

涓婇潰鎻愬埌鐨勫ぇ閮ㄥ垎璧勬枡锛岄兘鏄湪杩欓噷鎵惧埌锛屾垨鑰呮槸鎻愬埌锛?Python Packaging User Guide 銆?/p>

鎰熻阿杩欑瘒鏂囩珷锛岃鎴戜笉鍐嶇籂缁擄紝鐒跺悗鍙堜笅鍐冲績鍐欎簡鏈枃缁х画绾犵粨锛?Differences between distribute, distutils, setuptools and distutils2? 銆?/p>

杩欑瘒鏂囩珷涔熸瘮杈冪锛?鍏充簬python涓殑setup.py 锛岃€屼笖姣旀湰鏂囪寖渚嬫洿澶氥€?/p>

python瀛︿範:鍩虹姒傚康

鏍囩锛?/p>

鍘熸枃鍦板潃锛歨ttp://www.cnblogs.com/HondaHsu/p/4233032.html

相关内容

    暂无相关文章

评论关闭