有些時候內網還是無法訪問外網的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
離線安裝
下載:pip install --download /home pip2pi
安裝:pip install --no-index --find-links=/home/ pip2pi
3、同步軟件包
1、創建目錄 mkdir /work/pypi/Packages/ 2、同步單個軟件包 pip2tgz /work/pypi/Packages requests 3、批量同步 pip2tgz /work/pypi/Packages -r ./requirements.txt
注意:上述通過pip2tgz同步操作要保證有可以用的公網pip源,也可以通過pip直接下載包然后放在/work/pypi/Packages/目錄下
pip僅下載包:pip install --download /tmp pip2pi
查看同步的包 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/
可以用python快速啟動web服務 cd work/pypi/Packages/ python -m SimpleHTTPServer 8000
6、使用自己搭建的源安裝py包
pip install --trusted-host 192.168.10.119 -i http://192.168.10.119/simple ipcalc