Python進(jìn)階教程之創(chuàng)建本地PyPI倉(cāng)庫(kù)
初識(shí)pypi倉(cāng)庫(kù)
pypi倉(cāng)庫(kù) 是對(duì)第三方庫(kù)的代碼倉(cāng)管庫(kù),如有需要可以從倉(cāng)庫(kù)中下載,下載用命令pip install 庫(kù)名
pip 命令是需要在cmd命令下運(yùn)行,不能在python環(huán)境下使用
創(chuàng)建本地 PyPI 倉(cāng)庫(kù)
安裝 pypiserver
$ mkdir pypiserver $ cd pypiserver $ mkdir ./packages $ mkdir ./auth $ pip install passlib $ cd auth # 生成 htpass 文件 # 會(huì) prompt 密碼輸入,重復(fù)兩遍一樣的 $ htpasswd -sc .htaccess username $ cd pypiserver $ cat ./docker-compose.yml ... version: "3.3" services: pypiserver: image: pypiserver/pypiserver:latest volumes: - type: bind source: ./packages target: /data/packages - type: bind source: ./auth target: /data/auth command: -P /data/auth/.htaccess -a update,download,list /data/packages ports: - "8081:8080" $ docker-compose -f docker-compose.yml up -d
上傳 Python 安裝包
- 可以使用 twine CLI 工具上傳,也可以手動(dòng)地把安裝包 copy 到 pypiserver/packages 目錄下。
- 可以上傳 XXX.tar.gz 源碼包,也可以上傳 XXX.whl 分發(fā)包,都可以用于 pip 安裝。
安裝 twine CLI 工具:
$ pip install twine $ ~/.pypirc ... [distutils] index-servers = # 不使用 pypi 公共倉(cāng)庫(kù)。 # pypi internal #[pypi] #username:<your_pypi_username> #password:<your_pypi_passwd> [internal] repository: http://your_pipserver:8081 username: <some_username> password: <some_passwd> twine upload -r internal {packet_path}
(可選的)從現(xiàn)有的環(huán)境中獲取 pip 安裝包清單:
pip freeze bypy > requirement.txt pip download -d ./python_packages -r requirement.txt cp ./python_packages/* pypiserver/packages
(可選的)從源碼編譯得到可用于分發(fā)的 tar 包和 whl 包:
pip install wheel pip install -U setuptools python setup.py sdist bdist_wheel twine upload -r internal ./dist/yourpackage-0.0.1.tar.gz
使用私有 PyPI 倉(cāng)庫(kù)
隱式使用:
$ ~/.pip/pip.conf [global] index-url = http://youruser:yourpass@yourserver:8081/simple [install] trusted-host=yourserver
顯式使用:
$ pip install --trusted-host yourserver \ --extra-index-url http://youruser:yourpass@yourserver:8081/simple \ yourpackage
總結(jié)
到此這篇關(guān)于Python進(jìn)階教程之創(chuàng)建本地PyPI倉(cāng)庫(kù)的文章就介紹到這了,更多相關(guān)Python創(chuàng)建本地PyPI倉(cāng)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python常用的內(nèi)置序列結(jié)構(gòu)(列表、元組、字典)學(xué)習(xí)筆記
序列指元素排成一列的數(shù)據(jù)結(jié)構(gòu),Python中有l(wèi)ist列表而沒(méi)有默認(rèn)內(nèi)置array數(shù)組,以下我們來(lái)整理一下Python常用的內(nèi)置序列結(jié)構(gòu)(列表、元組、字典)學(xué)習(xí)筆記2016-07-07在linux系統(tǒng)下安裝python librtmp包的實(shí)現(xiàn)方法
今天小編就為大家分享一篇在linux系統(tǒng)下安裝python librtmp包的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07python中pip安裝、升級(jí)以及升級(jí)固定的包
我們知道python有大量的第三方庫(kù),這也是python的優(yōu)勢(shì)之一,pip就是python整的軟件包管理系統(tǒng),類(lèi)似于Linux平臺(tái)的yum倉(cāng)庫(kù),下面這篇文章主要給大家介紹了關(guān)于python中pip安裝、升級(jí)以及升級(jí)固定包的相關(guān)資料,需要的朋友可以參考下2022-02-02python實(shí)現(xiàn)門(mén)限回歸方式
今天小編就為大家分享一篇python實(shí)現(xiàn)門(mén)限回歸方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Django rest framework基本介紹與代碼示例
這篇文章主要介紹了Django rest framework基本介紹與代碼示例,簡(jiǎn)單敘述了rest framework的一些用處,可選擇的相關(guān)軟件包,然后分享了一個(gè)簡(jiǎn)單的模型支持的API的例子,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python基礎(chǔ)教程之tcp socket編程詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02