[Pipy]利用pip2pi搭建本地pypi源


當我們一個團隊開發一個項目的時候,須要的Python第三方包基本是固定的。每次搭建新環境的時候總是由於各種內外網,https問題花費大量的時間來安裝執行環境。 所以搭建一個本地的,小巧的,僅僅包括須要的package的源,或者cache都行,對於搭建好開發環境能夠節省非常多時間。


這里使用的是pip2pi。能夠指定一個下載源。pypi官方或者是國內的都行,把須要包同步到本地然后在本地搭建一個web服務。局域網內全部的用戶配置一下pip源之后就能夠高速的搭建python環境了。


實驗環境為window7


第一步安裝pip2pi

1
pip install pip2pi


第二步 配置本機的pip源  編輯C:\Users\Administrator\pip\pip.ini 文件(內容例如以下)。沒有就創建一個。這里是豆瓣

1
2
3
[global]
timeout =  60
index-url = http: //pypi.douban.com/simple


第三步 同步軟件包 

1 單個同步

#pip2tgz /pypi name==version    /pypi是存放這些包的目錄 這里使用的是E:\pipy

1
2
3
4
5
6
7
8
9
10
E:\dev1\nirvana>pip2tgz E:\pipy simplejson
Downloading/unpacking simplejson
   Downloading simplejson- 3.5 . 3 .tar.gz (70kB): 70kB downloaded
Saved e:\pipy\simplejson- 3.5 . 3 .tar.gz
Running setup.py egg_info  for  package  simplejson
 
Successfully downloaded simplejson
Cleaning up...
 
Done.  1  new  archives currently saved  in  'E:\\pipy' .

此時在pipy目錄中就能看到simplejson的包了


2 pip導出文件同步

#pip2tgz /var/www/packages/ -r requirements.txt foo==1.2 baz/

這里使用的requirement.txt 文件內容為

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Django== 1.5 . 5
MySQL-python== 1.2 . 3
amqp== 1.0 . 12
anyjson== 0.3 . 3
billiard== 2.7 . 3.31
celery== 3.0 . 19
django-celery== 3.0 . 17
django-kronos== 0.3
httplib2== 0.8
kombu== 2.5 . 12
python-dateutil== 2.1
pytz==2013b
reportlab== 2.7
six== 1.3 . 0
wsgiref== 0.1 . 2
xlwt== 0.7 . 5

運行

1
pip2tgz E:\pipy -r requirement.txt

把全部的包下載下來,這里會自己主動安裝(有點奇怪),linux下運行正常下載,但總是由於某些編譯問題或者包版本號過期的請問發生異常無法往下進行。這個比較煩人


第三步:創建更新索引(整個索引就是依據文件夾下的包生成一個網頁文件,興許搭建web服務就能夠直接用pip安裝了)

對整個文件夾建立索引

1
E:\dev1>dir2pi E:\pipy


更新索引,對單個軟件或這是list

1
2
pip2acmeco name
pip2acmeco -r requirements.txt



能夠使用apache或者nginx來搭建本地的web服務,然后其它機器更新pip.ini文件就能夠使用自己搭建的源了。


詳細能夠參考:搭建本地pypi源方法   配置pipy源方法



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM