搭建pip源(centos7版)

在centos7中搭建自用的pip源。

准备

  • 使用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本地源

哦吼是一首歌。
Built with Hugo
Theme Stack designed by Jimmy