如何搭建本身的 pip 本地 cache

開發Openstack相關項目的時候常常會本身搭建測試環境,搭建測試環境少不了下載pip包,可是身在天朝,下載pipy的包老是會斷開,速度很是慢,常常變動環境的同窗必定深受此害,因此我決定在最近一次性解決這個問題。 apache

因而開始着手研究pipy的東西,發現有一個比較簡單的方法能夠按照固定的版本緩存本地的pip包。 緩存

搭建PIP源

首先,無疑先要有個Apache環境,創建一個叫pip的目錄,存放全部的pip安裝包。
搭建源的方法有兩種,一種是直接將公網的pip源下載到本地,以後用crontab按期同步就能夠了,這樣的好處是大而全,很差的是對於網絡帶寬較小的,簡直就是拉鋸戰。 bash

這裏介紹的一種方法可能更適合於我的開發者,就是把全部的requirementst的內容所有集中起來,而後利用pip download下來作成源。 服務器

這是一個下載Pip包的腳本,我暫且稱之爲download.sh 網絡

#!/bin/bash
PIP_REQUIRE=」pip-requires」
CACHE_PATH=」/opt/pip」
while read LINE
do
if [[ $LINE =~ ^[a-zA-Z] ]]
then
echo $LINE
yes w | pip install $LINE –no-install -d pip -I
fi
done < $PIP_REQUIRE ide

其中Cache_Path爲當前pip包存放的位置 測試

下面咱們配置apache ui

<VirtualHost *:80>
ServerAdmin jimjiang@gmail.com
ServerName test.jimflying.com
DocumentRoot /opt url

<Directory /opt>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ErrorLog logs/mirrors-error_log
CustomLog logs/mirrors-access_log common
</VirtualHost> spa

配置完apache之後服務器端完成了

如今開始配置客戶端

vi $HOME/.pip/pip.conf

[global]
find-links = http://192.168.0.30/pip
no-index = true

vi $HOME/.pydistutils.cfg

[easy_install]
index_url = http://192.168.0.30/pip

這時候再pip install -r requirements的時候速度會變得很是快

相關文章
相關標籤/搜索