使用docker+devpi搭建本地pypi源的方法
前一段時(shí)間開(kāi)發(fā)需要經(jīng)常使用 pip 下載,雖然把 pip 源改成了國(guó)內(nèi)源,但我對(duì)速度還是不滿(mǎn)意,更為重要的是集成
測(cè)試環(huán)境是離線的,要在集成測(cè)試環(huán)境開(kāi)發(fā)顯然需要搭建自己的本地 pip 源。在使用 devpi 之前我曾使用過(guò) pip2pi,但有個(gè) bug 導(dǎo)致離線環(huán)境下的 tox 命令總是失敗,所以最后采用 devpi 搭建 pip 源。這里使用 docker 部署,方便又快速,如果不小心弄崩了也只需要重新運(yùn)行 docker 容器就好了。如果你的環(huán)境沒(méi)有安裝 docker 可以自行搜素安裝方法,比如 docker 社區(qū)的文檔 install docker。如果你是 Centos 用戶(hù),可以使用以下方法安裝
sudo yum update sudo yum -y install docker sudo systemctl enable docker sudo systemctl start docker
接下來(lái)使用使用 docker 部署一個(gè) Python 本地鏡像源,我們可以使用 docker hub 上已有的鏡像,我這里選擇的是
muccg/devpi 這個(gè)鏡像
# 設(shè)置 devpi 服務(wù)器管理員密碼 DEVPI_PASSWORD = 123 mkdir -p /src/docker/devpi mkdir /tmp/wheelhouse docker run -d --name devpi \ --publish 3141:3141 \ --volume /tmp/wheelhouse:/wheelhouse --volume /srv/docker/devpi:/data \ --env=DEVPI_PASSWORD=$DEVPI_PASSWORD \ --restart always \ muccg/docker-devpi
接著先在本地下載好所需的wheel包,requirements.txt文件內(nèi)容即為我們需要的 Python 庫(kù)列表
pip wheel --wheel-dir /tmp/wheelhouse -r requirements.txt
如果從 pip 源下載的庫(kù)已經(jīng)是 wheel 包的話(huà)文件將會(huì)被直接放在 /tmp/wheelhouse 內(nèi),如果是
tar 包,pip 會(huì)先 build 出 wheel 包,這可能需要一些時(shí)間。下載完成后 wheelhouse 內(nèi)容類(lèi)似
于
ll /tmp/wheelhouse total 524K -rwxrwxrwx 1 rookie rookie 155K Apr 6 23:40 certifi-2019.3.9-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 131K Apr 6 23:40 chardet-3.0.4-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 58K Apr 6 23:40 idna-2.8-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 57K Apr 6 23:40 requests-2.21.0-py2.py3-none-any.whl -rwxrwxrwx 1 rookie rookie 116K Apr 6 23:40 urllib3-1.24.1-py2.py3-none-any.whl
下載完成后如果本地環(huán)境安裝了devpi客戶(hù)端,可以直接上傳 wheel 包,不過(guò)由于我們?cè)趧?chuàng)建容器時(shí)已經(jīng)
把 wheelhouse
文件夾掛載進(jìn)去,也可以在在容器里直接操作
# 進(jìn)入容器 docker exec -it -u root devpi bash # 登陸并上傳 devpi use http://<host_ip>:3141/root/public --set-cfg devpi login root 123 devpi upload --from-dir /wheelhouse
上傳完成后可以使用 http://<host_ip>:3141
查看 pip 本地源服務(wù)器狀態(tài)。
若要臨時(shí)使用可以使用 pip install 的 --index 和 --trusted-host 選項(xiàng)
pip install --index http://<host_ip>:3141/root/public/+simple/ \ --trusted-host <host_ip>
或者修改 pip.conf 文件永久使用
# vim ~/.pip/pip.conf [global] index_url = http://<host_ip>:3141/root/public/+simple/ trusted-host = <host_ip> [search] index = http://<host_ip>:3141/root/public/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python打包模塊wheel的使用方法與將python包發(fā)布到PyPI的方法詳解
- python 如何上傳包到pypi
- 如何使用Docker搭建pypi私有倉(cāng)庫(kù)
- 搭建pypi私有倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程詳解
- 完美解決pyinstaller打包報(bào)錯(cuò)找不到依賴(lài)pypiwin32或pywin32-ctypes的錯(cuò)誤
- 將python包發(fā)布到PyPI和制作whl文件方式
- python自制包并用pip免提交到pypi僅安裝到本機(jī)【推薦】
- 使用豆瓣提供的國(guó)內(nèi)pypi源
- Python上傳package到Pypi(代碼簡(jiǎn)單)
- Python中pip安裝非PyPI官網(wǎng)第三方庫(kù)的方法
- 如何將自己寫(xiě)的模塊上傳到pypi
相關(guān)文章
使用docker部署springboot項(xiàng)目到服務(wù)器的詳細(xì)過(guò)程
這篇文章主要介紹了docker部署springboot項(xiàng)目到服務(wù)器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06教你如何通過(guò)編寫(xiě)dockerfile部署python項(xiàng)目
Dockerfile是一個(gè)放置在項(xiàng)目根目錄下的描述文件,可以利用 Docker 命令基于該文件構(gòu)建一個(gè)鏡像,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)編寫(xiě)dockerfile部署python項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2024-07-07vscode進(jìn)入服務(wù)器docker容器的方法
這篇文章主要介紹了vscode進(jìn)入服務(wù)器docker容器的方法,首先要確保已經(jīng)運(yùn)行docker容器,已經(jīng)用vscode鏈接服務(wù)器,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04基于Docker部署Dubbo+Nacos服務(wù)的過(guò)程
這篇文章主要介紹了基于Docker部署Dubbo+Nacos服務(wù),本文介紹基于?Docker?部署一套?Dubbo?+?Nacos?的微服務(wù)環(huán)境,并解決容器里的?IP?及端口的訪問(wèn)問(wèn)題,需要的朋友可以參考下2023-02-02關(guān)于docker無(wú)法正常下載鏡像的問(wèn)題小結(jié)
之前還可以正常下載鏡像,但是一段時(shí)間之后就無(wú)法下載了,猜測(cè)可能是政治原因,無(wú)法連接到國(guó)外服務(wù)器,所以我設(shè)置了阿里云的鏡像加速器,需要的朋友可以參考下2024-06-06詳解如何解決docker容器無(wú)法通過(guò)IP訪問(wèn)宿主機(jī)問(wèn)題
這篇文章主要介紹了詳解如何解決docker容器無(wú)法通過(guò)IP訪問(wèn)宿主機(jī)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01一文教會(huì)你如何高效地搭建Docker私有倉(cāng)庫(kù)
Docker容器應(yīng)用的開(kāi)發(fā)和運(yùn)行離不開(kāi)可靠的鏡像管理,雖然Docker官方也提供了公共的鏡像倉(cāng)庫(kù),但是從安全和效率等方面考慮,部署我們私有環(huán)境內(nèi)的Registry也是非常必要的,這篇文章主要介紹了如何高效地搭建Docker私有倉(cāng)庫(kù)的相關(guān)資料,需要的朋友可以參考下2022-08-08docker報(bào)錯(cuò)Container is not running問(wèn)題及解決
這篇文章主要介紹了docker報(bào)錯(cuò)Container is not running問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05