[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源方法


posted @ 2017-08-21 11:44  gccbuaa  阅读(2522)  评论(0编辑  收藏  举报