1. 程式人生 > 實用技巧 >python搭建本地pip源,離線安裝python模組

python搭建本地pip源,離線安裝python模組

有些時候內網還是無法訪問外網的PIP源,這樣就需要搭建自己的PIP源

1、離線安裝pip

需先安裝setuptools

1、下載安裝包
https://files.pythonhosted.org/packages/24/49/7f567b628e14ee004938eec256cffeae7097db9e28576911ae7b84d2ff07/setuptools-41.1.0.post1.tar.gz

2、解壓
tar -zxvf setuptools-41.1.0.post1.tar.gz

3、安裝
cd setuptools-41.1.0.post1/
python setup.py install

安裝pip

1、下載pip包
https://files.pythonhosted.org/packages/aa/1a/62fb0b95b1572c76dbc3cc31124a8b6866cbe9139eb7659ac7349457cf7c/pip-19.2.2.tar.gz

2、解壓
tar -zxvf pip-19.2.2.tar.gz

3、安裝
cd pip-19.2.2/
python setup.py install

2、安裝 pip2pi

pip install pip2pi

3、同步軟體包

1、建立目錄
mkdir  /work/pypi/Packages/
2、同步單個軟體包
pip2tgz /work/pypi/Packages requests
3、批量同步 pip2tgz /work/pypi/Packages -r ./requirements.txt
檢視同步的包
ls -l /work/pypi/Packages/


-rw-r--r--.  1 root  root  9080731 Jul 29 15:19 Django-3.0.8.tar.gz
-rw-r--r--.  1 root  root     9827 Jul 29 15:20 ipcalc-1.99.0.tar.gz
-rw-r--r--.  1 root  root  1231844 Jul 29 17:33 nginx-0729.tar.gz
-rwxrwxrwx.  1 nginx nginx  123902 Jul 27 16:13 pbr-0.5.21.tar.gz
-rw-r--r--. 1 root root 1377264 Feb 27 02:04 pip-19.2.2.tar.gz

4、建立索引

dir2pi /work/pypi/Packages/
檢視
ls -l /work/pypi/Packages/simple/

drwxr-xr-x. 2 root root  51 Jul 29 17:53 django
-rw-r--r--. 1 root root 373 Jul 29 17:53 index.html
drwxr-xr-x. 2 root root  52 Jul 29 17:53 ipcalc
drwxr-xr-x. 2 root root  49 Jul 29 17:53 nginx
drwxr-xr-x. 2 root root  49 Jul 29 17:53 pbr
drwxr-xr-x. 2 root root  88 Jul 29 17:53 pip
drwxr-xr-x. 2 root root  65 Jul 29 17:53 pip2pi
drwxr-xr-x. 2 root root  62 Jul 29 17:53 setuptools
drwxr-xr-x. 2 root root  63 Jul 29 17:53 six


ls -l /work/pypi/Packages/simple/ipcalc/

total 4
-rw-r--r--. 1 root root 62 Jul 29 17:53 index.html
lrwxrwxrwx. 1 root root 26 Jul 29 17:53 ipcalc-1.99.0.tar.gz -> ../../ipcalc-1.99.0.tar.gz

5、安裝web應用

可以安裝nginx或者httpd,以nginx配置為例

user  root;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        root /work/pypi/Packages/;
        location / {
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
訪問http://192.168.0.2/simple/

6、使用自己搭建的源安裝py包

pip install  --trusted-host 192.168.10.119 -i http://192.168.10.119/simple  ipcalc