准备
- 使用
apache
服务,可参考搭建yum源或apt源部分的介绍; - 需要
pip
以及pip2pi
工具;
搭建
1
2
3
|
$ yum -y install python-pip # 已安装请忽略
$ yum -y install epel-release # 安装pip需要先安装epel 已安装请忽略
$ pip install pip2pi # pip2pi工具
|
创建pip源根目录:
- 下载包使用
pip2tgz path package==1.0
可指定包版本,默认最新版; - 批量下载使用
pip2tgz path -r list.txt
;
1
2
3
4
|
$ cd /var/www/html/ && mkdir -p pypi && cd pypi
$ touch.list # 下载包列表
$ mkdir -p packages # 存放下载的包
$ pip2tgz packages -r list.txt
|
软件包列表list.txt
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Django==1.5.5
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
|
下载包并生成simple
目录,使用dir2pi path
建立索引:
为什么要创建pacakges
目录呢?如果直接下载包到当前目录即pypi
下,那么在建立索引时就会出错,因为存在其他的非包文件,所以将包单独存放在packages
目录下。
1
2
3
4
5
|
$ cd packages
$ dir2pi ./
$ ls
xxxx.tar.gz xxxxx.tar.gz
simple # 生成的索引目录
|
所以,最终的使用路径是http://192.168.10.5/pypi/packages/simple
.
使用
修改~/.pip/pip.conf
文件如下,没有则创建,存在请忽略:
1
2
|
$ mkdir -p .pip && cd .pip
$ touch pip.conf
|
1
2
3
|
[global]
index-url = http://192.168.10.5/pypi/packages/simple/
trusted-host = 192.168.10.5
|
修改完测试,成功:
1
2
3
4
5
6
7
|
$ pip install django
Collecting django
Downloading http://192.168.10.5/pypi/packages/simple/django/Django-1.5.5.tar.gz (8.1MB)
100% |████████████████████████████████| 8.1MB 50.3MB/s
Installing collected packages: django
Running setup.py install for django ... done
Successfully installed django-1.5.5
|
更新
更新索引
- 多个包: pip2acmeco -r list.txt
- 单个包: pip2acmeco package==1.0.0
但是,我使用时出现pip2acmeco: 未找到命令
;所以只能退舍使用dir2pi path
了:
1
2
3
|
$ pip2acmeco -r list.txt # 如果可以,你使用
$ pip2acmeco pacakge_name # 或 使用
$ dir2pi packages # 都不行,使用
|
参考链接
搭建本地pip源
利用pip2pi搭建pip本地源