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)文章
Django之創(chuàng)建引擎索引報(bào)錯(cuò)及解決詳解
這篇文章主要介紹了Django之創(chuàng)建引擎索引報(bào)錯(cuò)及解決詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python中使用moviepy進(jìn)行視頻分割的實(shí)現(xiàn)方法
MoviePy是一個(gè)關(guān)于視頻編輯的python庫(kù),主要包括:剪輯,嵌入拼接,標(biāo)題插入,視頻合成(又名非線性編輯),視頻處理,和自定制效果。本文重點(diǎn)給大家介紹Python中使用moviepy進(jìn)行視頻分割的實(shí)現(xiàn)方法,需要的朋友一起看看吧2021-12-12
python中pop()函數(shù)的語(yǔ)法與實(shí)例
這篇文章主要給大家介紹了關(guān)于python中pop()函數(shù)語(yǔ)法與實(shí)例的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Python中如何判斷當(dāng)前操作系統(tǒng)類(lèi)型
這篇文章主要為大家詳細(xì)介紹了Python中如何判斷當(dāng)前操作系統(tǒng)類(lèi)型,文中一共提供了兩種方法,文中的示例代碼講解詳細(xì),需要的小伙伴可以了解下2025-09-09
Python中shutil模塊的常用文件操作函數(shù)用法示例
shutil模塊提供比OS模塊更強(qiáng)大的本地文件操作功能,包括文件的壓縮和解壓縮等,下面我們就來(lái)列舉Python中shutil模塊的常用文件操作函數(shù)用法示例:2016-07-07
如何利用Python實(shí)現(xiàn)一個(gè)論文降重工具
文章去重(或叫網(wǎng)頁(yè)去重)是根據(jù)文章(或網(wǎng)頁(yè))的文字內(nèi)容來(lái)判斷多個(gè)文章之間是否重復(fù),下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)論文降重工具的相關(guān)資料,需要的朋友可以參考下2021-07-07
Python實(shí)現(xiàn)求解括號(hào)匹配問(wèn)題的方法
這篇文章主要介紹了Python實(shí)現(xiàn)求解括號(hào)匹配問(wèn)題的方法,涉及Python基于棧的字符串遍歷、判斷、運(yùn)算解決括號(hào)匹配相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
淺談python標(biāo)準(zhǔn)庫(kù)--functools.partial
這篇文章主要介紹了python標(biāo)準(zhǔn)庫(kù)--functools.partial,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Python使用os模塊實(shí)現(xiàn)更高效地讀寫(xiě)文件
os是python標(biāo)準(zhǔn)庫(kù),包含幾百個(gè)函數(shù)常用路徑操作、進(jìn)程管理、環(huán)境參數(shù)等好多類(lèi)。本文將使用os模塊實(shí)現(xiàn)更高效地讀寫(xiě)文件,感興趣的可以學(xué)習(xí)一下2022-07-07

