pip離線安裝和配置pypi國內加速映象實踐

王奧OX發表於2019-02-16

前言

pip安裝本身很簡單官方推薦的安裝方法就一條命令,但離線安裝pip時就有點痛苦了,因為不知道缺少什麼依賴包。有時候我們下載python的第三方庫入django的時候pip install django 或者 easy_install django 發現下載的速度非常的慢。慢的原因其實就是從Python的官方源pypi.python.org/pypi 下載到本地,然後解包安裝。不過因為某些原因,訪問官方的pypi不穩定,很慢甚至有些還時不時的訪問不了。為了解決這個下載慢的問題,可以使用國內的pypi映象。

輕輕鬆鬆解決pip離線安裝,配置pypi國內加速映象

更新歷史

2018年05月03日 – 初稿

閱讀原文 – https://wsgzao.github.io/post…

擴充套件閱讀

PyPA – https://www.pypa.io/


pip簡介

The PyPA recommended tool for installing Python packages.

pip安裝

https://pip.pypa.io/en/stable…

pip線上安裝

To install pip, securely download get-pip.py:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Inspect get-pip.py for any malevolence. Then run the following:

python get-pip.py

pip離線安裝

以 Linux 下 Python 2.7.14 和 pip 9.0.1 為例,Windows 可以參考最後的推薦連結

下文中提到的壓縮包都可以在官方找到對應的版本 – https://pypi.org/

# Install Packages
yum install gcc zlib zlib-devel openssl-devel -y

# Install Python
tar xf Python-2.7.14.tgz
cd Python-2.7.14
./configure
make
make install
cd ..

# ImportError: No module named six.moves
tar xf six-1.11.0.tar.gz 
cd six-1.11.0
python setup.py install
cd ..

# ImportError: No module named packaging.version
tar xf packaging-17.1.tar.gz 
cd packaging-17.1
python setup.py install
cd ..

# ImportError: No module named pyparsing
tar xf pyparsing-2.2.0.tar.gz 
cd pyparsing-2.2.0
python setup.py install
cd ..

# ImportError: No module named appdirs
tar xf appdirs-1.4.3.tar.gz 
cd appdirs-1.4.3
python setup.py install
cd ..

# Install Setuptools
unzip setuptools-38.5.2.zip
cd setuptools-38.5.2
python setup.py install
cd ..

# Install pip
tar xf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
cd ..

# Upgrading pip
pip install -U pip

配置pypi國內加速映象

由於眾所周知的原因,國內訪問和下載國外的映象倉庫不暢,所以需要做些小小的優化

阿里雲(aliyun) – https://mirrors.aliyun.com/py…
豆瓣(douban) – https://pypi.douban.com/simple/
清華大學(tuna) – https://pypi.tuna.tsinghua.ed…

臨時使用

注意,simple 不能少, 是 https 而不是 http

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ansible

永久生效

pip配置檔案不存在則需要手動建立,具體配置資訊參考官方文件

https://pip.pypa.io/en/stable…

# Linux
~/.config/pip/pip.conf
# Windows
%APPDATA%pippip.ini
# macOS
$HOME/Library/Application Support/pip/pip.conf

Linux更換pypi國內源

# Linux更換pypi國內源
tee ~/.config/pip/pip.conf <<-`EOF`
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host= mirrors.aliyun.com
EOF

Windows更換pypi國內源

# Windows更換pypi國內源,執行以下python程式碼會自動建立pip.ini
import os

ini="""[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
"""
pippath=os.environ["USERPROFILE"]+"\pip\"

if not os.path.exists(pippath):
    os.mkdir(pippath)

with open(pippath+"pip.ini","w+") as f:
    f.write(ini)

推薦參考的文章

Python 2.6 升級至 Python 2.7 的實踐心得 – https://wsgzao.github.io/post…
pip離線安裝和配置pypi國內加速映象實踐 – https://wsgzao.github.io/post…
使用pypiserver快速搭建內網離線pypi倉庫實踐 – https://wsgzao.github.io/post…
RHEL7/CentOS7線上和離線安裝GitLab配置使用實踐 – https://wsgzao.github.io/post…
使用pipenv代替virtualenv管理python包 – https://wsgzao.github.io/post…

相關文章