1. 程式人生 > >使用pypi-server搭建簡單的PyPI源

使用pypi-server搭建簡單的PyPI源


pypiserver 是一個最基本的PyPI伺服器實現, 可以用來上傳和維護python包. 本文介紹 pypiserver 在ubuntu上的基本安裝, 配置和使用.

1. 基本安裝和使用

1.1 安裝和啟動

pypiserver 可以在Python 2或者Python 3下執行. 使用pip就可以安裝:

pip install pypiserver

啟動 pypiserver 使用以下命令:

pypi-server

在沒有顯示指定任何啟動引數的時候, pypiserver 是使用 ~/packages 來儲存Python包, 同時監聽8080埠來提供PyPI服務.

1.2 上傳Python包

此時, 在建立 ~/packages

 目錄後, 可以將Python包上傳到此目錄下. 比如, 有一個Python專案叫 demo , 它的 setup.py 檔案內容如下:

from setuptools import setup

setup(
    name='demo',
    version='0.0.1',
    packages=['demo']
)

在專案根目錄下執行以下命令來生成Python程式碼分發包:

python setup.py sdist

執行完上面這條命令後, 可以在專案下的 dist 目錄找到分發包 demo-0.0.1.tar.gz. 將分發包上傳到 ~/packages 目錄下, 接下來就可以訪問 pypiserver

 上的Python包了.

1.3 安裝 pypiserver 上的Python包

在安裝和啟動 pypiserver 後, 可以通過瀏覽器訪問http://localhost:8080可以訪問 pypiserver 的預設歡迎頁:

訪問http://localhost:8080/simple/demo則可以看到剛上傳的_demo-0.0.1.tar.gz_包

1.3.1 pip

在本地環境中, 可以使用 pip 的 index-url 引數來訪問 pypiserver 上的Python包:

# pip search -i http://localhost:8080 demo
# pip install -i http://localhost:8080 demo

1.3.2 easy_install

同樣也可以使用 easy_install 來訪問 pypiserver :

# easy_install -i http://localhost:8080/simple demo

2. 遠端上傳專案包

如果希望通過python setup.py upload命令將本地專案程式碼上傳到PyPI伺服器, 可以通過以下步驟來完成.

2.1 無密碼上傳專案包

預設情況下, pypiserver 的上傳操作是密碼保護的, 不過可以通過以下啟動引數來關閉密碼保護:

pypi-server -P . -a .

上述命令中的-P引數用來指定密碼檔案, -a用來指定需要密碼保護的操作. 當這兩個引數同時指定為.時, 表示所有的操作都不需要密碼保護.

此時, 就可以在Python專案的根目錄下, 執行遠端安裝命令來上傳包. 比如在本地專案中, 執行以下命令:

python setup.py sdist upload -r http://localhost:8080

此時, upload 命令仍然會提示輸入密碼, 此時直接回車確認就可以了.

2.2 使用密碼保護PyPI源

當希望使用密碼來控制Python包的上傳操作的時候, 需要使用Apache htpasswd 檔案.

pypiserver 需要 passlib 包來讀取 htpasswd 檔案. 使用以下命令來安裝 passlib :

pip install passlib

要生成 htpasswd 檔案, 需要安裝 apache2-utils 工具包. 在Ubuntu上使用以下命令安裝:

apt-get install -y apache2-utils

接下來就可以用 htpasswd 命令來生成密碼檔案. 假設密碼檔案路徑為 /root/.pypipasswd , 第一次生成密碼檔案的命令如下:

htpasswd -c /root/.pypipasswd sam

上述命令中的最後一個引數sam是使用者名稱, 執行命令後, 會提示輸入密碼.

當需要在已有的密碼檔案中新增新的使用者名稱和密碼時, 不能再使用-c引數, 否則會將已有的資料覆蓋. 比如, 要在上一步生成的檔案裡新增一個新使用者名稱 john :

htpasswd /root/.pypipasswd john

接下來就可以使用密碼檔案來控制上傳操作了. 當啟動 pypiserver 時, 通過-P引數來指定所要使用的密碼檔案. 預設情況下, 上傳操作會需要密碼驗證, 如果希望其他操作也需要密碼驗證, 可以使用-a引數. 具體-a引數的使用可以查閱_pypiserver_的啟動命令幫助, 這裡不再展開.

pypi-server -P /root/.pypipasswd

接下來, 在需要上傳Python包的系統中, 需要配置Distutils來指定上傳操作所需要的使用者名稱和密碼.

建立或者修改 ~/.pypirc 檔案, 檔案需要以下內容:

[distutils]
index-servers = localhost

[localhost]
repository: http://localhost:8080
username: sam
password: 123456

配置中的[localhost] section就是 pypiserver 的地址和使用者名稱密碼資訊. index-servers值中的localhost就指定了名為localhost的section. 接下來, 當我們向名為 localhost 或者地址為 http://localhost:8080 的PyPI源上傳Python包時, 使用者名稱 sam 和密碼 123456 就會被用來驗證操作許可權:

python setup.py sdist upload -r localhost

3. 其他配置

3.1 指定監聽埠

預設情況下 pypiserver 監聽8080埠, 我們可以通過-p引數來指定期望的埠:

pypi-server -p 9090

3.2 指定包目錄

預設情況下 pypiserver 使用_~/packages_ 目錄來讀取和儲存Python包. 我們可以使用-P引數來修改:

pypi-server -P /opt/pypiserver/packages

3.3 請求轉發

當請求的Python包, 在本地 pypiserver 上沒有找到時, 它會將請求轉發到外部PyPI源, 預設為 https://pypi.doubanio.com/simple . 對於國內使用來說, 可以通過 --fallback-url 引數將轉發目的地址設定為豆瓣源:

pypi-server --fallback-url https://pypi.doubanio.com/simple

  • http://www.vxjezfv.cn/
    http://news.vxjezfv.cn/
    http://www.xibiyo.com.cn/
    http://news.xibiyo.com.cn/
    http://www.9208361.org.cn/
    http://news.9208361.org.cn/
    http://www.9111316.cn/
    http://news.9111316.cn/
    http://www.bluelf.com.cn/
    http://news.bluelf.com.cn/
    http://www.qqq136com.cn/
    http://news.qqq136com.cn/
    http://www.2819w.cn/
    http://news.2819w.cn/
    http://www.9019758.org.cn/
    http://news.9019758.org.cn/
    http://www.wydaogou.cn/
    http://news.wydaogou.cn/
    http://www.ralhys.cn/
    http://news.ralhys.cn/

相關推薦

使用pypi-server搭建簡單PyPI

pypiserver 是一個最基本的PyPI伺服器實現, 可以用來上傳和維護python包. 本文介紹 pypiserver 在ubuntu上的基本安裝, 配置和使用.1. 基本安裝和使用1.1 安裝和啟動pypiserver 可以在Python 2或者Python 3下執行

搭建本地pypi方法 – 僅同步openstack依賴的的pypi軟體包

 使用devstack搭建openstack開發環境,一個很頭疼的問題就是devstack通過pip安裝依賴的一些軟體包,由於網路環境的差異,導致很多無法連線外網或者連線外網受限的實驗室環境非常崩潰,前面一篇文章介紹過《基於CentOS的pip本地源搭建方法》,文中的方法

Ubuntu 搭建簡單的git server

簡介 Git 可以使用四種主要的協議來傳輸資料: 本地協議(Local), HTTP 協議, SSH(Secure Shell)協議 Git 協議。 在此,我們將會討論那些協議及哪些情形應該使用(或避免使用)他們。 這裡使用的是ssh協議,採用的是的gitcore搭建的,如果想搭建一個高

pypi-server本地服務的使用

1、安裝pypi-server pip install pypi-server 2、啟動pypi-server服務 pypi-server -p 9090 指定包的路徑 如,pypi-server -p 9090 /root/packages/ 3、

http-server:一個簡單的零配置命令行的http服務器

.gz 例如 選項 輸出 csharp ava 開發 日誌 art 首先簡介一下http-server: http-server是一個簡單的零配置命令行http服務器,他對於生產使用來說足夠強大,他是簡單和可刪節足以用於測試,足夠簡單易用,而且可用於本地開發 1、首先

centos6.8+nginx搭建簡單的https服務器

centos nginx 搭建簡單 這裏nginx搭建https服務器,必須幾個要求,第一有安裝openssl-devel,當然這個沒有貌似編譯添加ssl模塊會出錯。那如果編譯有不會的可以參考我前面的博客,當然baidu和google上資料也很多。1、確認nginx服務器能正常運行

Win2008 Server搭建流媒體服務(在線看電影)

管理 video 區別 利用 color mic 更新 com web 什麽是流媒體服務呢。 所謂流媒體是指采用流式傳輸的方式在Internet播放的媒體格式, 與需要將整個視頻文件全部下載之後才能觀看的傳統方式相比, 流媒體技術是通過將視頻文件經過特殊的壓縮方式分成

使用vue-cli腳手架搭建簡單項目框架

blog npm cnblogs 模板 ext 國內 -- web ted 1.首先已經安裝了node,最好版本6以上。 2.安裝淘寶鏡像 大家都知道國內直接使用 npm 的官方鏡像是非常慢的,這裏推薦使用淘寶 NPM 鏡像。這樣就可以直接使用cnpm了。 npm ins

iOS開發--Mac下server搭建

顯示 imageview app esc use 分享 本地 div server搭建 前言 對於Mac電腦的認識。我一直停留在裝B神器的意識上。就在前兩天我徹底改變了庸俗的看法,當時忙著寫畢業設計。苦於iOS開發沒有server, 數據都

搭建本地yum服務器

yum源  yum源的搭建可分為兩種方法:使用本地鏡像進行搭建,鏡像中的rpm版本比較舊搭建Apache服務器掛載ISO鏡像,將鏡像中的包放至Apache服務器目錄下用yum源服務器的包同步到本地在Apache服務器目錄下建立對應目錄用rsync同步一、使用本地鏡像搭建Apache服務器  使用yum安裝,

gitlab 搭建自己的代碼管理器

設置 網頁 -- -1 服務 代碼管理器 cnblogs push 操作 首先 gitlab 是不支持 windows、mac os 的,具體支持的系統參照官網的 1、安裝虛擬機 ubuntu16.04 需要註意的一點:gitlab 服務器 與 客戶端必須在一

openvpn-server 搭建

open openvpn搭建 openvpn 2.2.21、需求vps 下搭建openvpn,並推送相關路由,此種vpn與商業化的SSL vpn幾乎等同無異。穩定性不相 上下,但沒有ssl 搭建維護方便2、vpn 安裝在/usr/local/openvpn 目錄下、並做配置tar xvzf o

    局域網內搭建 本地yum

yum 源搭建 局域網 repodata目的:局域網內配置yum 源服務器,方便局域網內服務器安裝軟件測試環境: IP :10.139.13.34 apache 服務器 用來做局域網內的yum 源服務器 IP: 10.139.13.34 內網服務器 部署步驟: 搭建apache 服務器用來提供yum

面向連接的Socket Server簡單實現(簡明易懂)

nta on() img == con 線程關閉 sse 每一個 sockaddr http://www.cnblogs.com/worldtraveler/p/4685977.html 一、基本原理 有時候我們需要實現一個公共的模塊,需要對多個其他的模塊提供服務,最常用

牛元帥碼下載搭建 H5鬥牛碼下載

找到 領域 作品 線索 其他 我認 http 世人 邏輯 50年以前,William Higinbotham用一個示波器和一些模擬電路制作了第一款電子遊戲。雖然自那以後,遊戲已經發生了翻天覆地的變化,但今天的AAA遊戲大作的成功也部分歸功於數年以前就存在的設計創新。在本

從零開始利用vue-cli搭建簡單音樂網站(一)

路徑 nod .com mman csdn desc blog -a where 最近在學習vue框架,練習了一些例子之後,想著搭建一個vue項目,了解到官方有提供一個vue-cli工具來搭建項目腳手架,嘗試了一下,寫下博客來記錄一下。 一、工具環境 1、node.js 6

通過ftp搭建本地yum

本地 yum iso 由於本地局域網所限,所以必須要搭建一個yum源;服務器是內部服務器,不能訪問公網;且只能在公司鏈接,限制了源IP;正發愁怎麽把ISO上傳到服務器上;服務器down了,磁盤壞道,而且做的raid0;換盤重裝系統,又讓我手欠的刪除了glibc包;然後悲催的去機房直連主機進入拯救模

linux系統搭建本地yum以及搭建第3方軟件倉庫

linux 基礎 學習篇 搭建yum源與軟件倉庫一、搭建本地yum源 yum是上層軟件管理工具,可以解決軟件的依賴關系,但是yum能使用的前提是必須要有yum源,以及配置源的指向文件。1.配置鏡像安裝源一般情況,我會把重要的文件保存在根目錄下,這裏將鏡像導入根下的1.配置鏡

json-server搭建使用

目錄 news spa -c 一個 ins sna nodejs content 項目中前端和後端通常是並行開發,為了減少等待後端接口開發的時間,我們經常需要在本地模擬後端接口用來測試前端效果。這種做法稱之為構建前端Mock。 本地啟動一個靜態服務,將所需要的接口寫成js

drf結合sql server搭建後臺管理系統

-i editor forms 後臺管理系統 虛擬 span export xadmin 配置 1. 安裝Python3.6 添加到WORKON_HOME系統變量 2.pip install virtualenvwrapper 3.mkvirtualenv project1