pip?是 python 必不可少的的包管理工具,但是要在國內(nèi)用得爽,必須要配置鏡像源。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的五寨網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
有哪些鏡像站可用,以及如何配置,網(wǎng)上都有很多分享了。
我常用的是? 阿里云鏡像站 。
這里有一點(diǎn)比較麻煩的地方,就是是 Linux 和 Windows 環(huán)境下的?pip?配置文件的名字和位置都不同,經(jīng)?;煜?。
今天就教大家一招,快速搞定:
執(zhí)行完上面兩條命令就可以啦。
pip config set?命令能自動(dòng)把配置寫入到用戶對應(yīng)的配置文件中:
[global]
index-url =
[install]
trusted-host=mirrors.aliyun.com
命令雖然方便,但是參數(shù)格式復(fù)雜,記住不太容易,要是想改一下也挺麻煩,
所以我們進(jìn)一步了解一下細(xì)節(jié)。
“ 下面我以 Windows 系統(tǒng)為例,實(shí)際在 Linux 系統(tǒng)也是類似
查看配置
執(zhí)行?pip config list?命令可以顯示已經(jīng)有了哪些配置:
pip config list
global.index-url=''
install.trusted-host='mirrors.aliyun.com'
帶上一個(gè)?-v?選項(xiàng):
pip config list -v
For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\davy\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\davy\AppData\Roaming\pip\pip.ini'
For variant 'site', will try loading 'c:\users\davy\appdata\local\programs\python\python38\pip.ini'
global.index-url=''
install.trusted-host='mirrors.aliyun.com'
“ 這里有一點(diǎn)不太好的地方是不顯示配置是在哪個(gè)文件里。
就把它嘗試獲取的配置文件名完整路徑列出來了。前面的?global?和?user?和?site?分別表示配置文件生效的范圍:
global - 全局,一般不用
user - 當(dāng)前用戶,推薦
site - 只針對某一個(gè) python 解釋器
可以看到?user?有兩個(gè)地方,其中配置任何一個(gè)都是可以的。
有的網(wǎng)絡(luò)文章推薦的手動(dòng)創(chuàng)建文件地址是前面那個(gè),但是?pip?默認(rèn)創(chuàng)建的是后者。
編輯配置
在命令行直接執(zhí)行?pip config edit?會(huì)自動(dòng)為我們打開配置文件,但是在 Windows 環(huán)境下還不行:
pip config edit
ERROR: Could not determine editor to use.
需要手動(dòng)指定一個(gè)編輯器,就用記事本就行了:
pip config edit? --editor notepad
“ Linux 系統(tǒng)中編輯器可以使用 vi,也可以是你習(xí)慣的其它編輯器
如果你從來沒有設(shè)置過,它會(huì)報(bào) 找不到指定路徑,這是因?yàn)橄鄳?yīng)的文件夾沒有創(chuàng)建。
設(shè)置配置
通過?pip config set?命令可以直接設(shè)置配置項(xiàng),它會(huì)自動(dòng)創(chuàng)建沒有的文件夾和文件。但是必須要給定一個(gè)配置項(xiàng):
pip config set
ERROR: Got unexpected number of arguments, expected 2. (example: "pip config set [name] [value]")
我們隨便寫一個(gè)配置:
pip config set x.y z
Writing to C:\Users\davy\AppData\Roaming\pip\pip.ini
然后再執(zhí)行上面的
pip config edit? --editor notepad
就能自動(dòng)打開配置文件,把拷貝好的配置文件內(nèi)容貼進(jìn)去就可以啦。
1.安裝docker服務(wù):
centos 下直接yum安裝
yum install docker
2.修改docker倉庫地址為國內(nèi):
略
3.編寫Dockerfile, 如下:
4.制作鏡像:
docker build -f Dockerfile -t blogapp:1.0 .
ps:
最后一個(gè)參數(shù)是.號,別忘了加
制作鏡像可能是一個(gè)漫長的過程。。。
途中有問題會(huì)中止,需要檢查問題并修改Dockerfile,然后重新開始。。。
5.查看制作的鏡像:
docker images
6.運(yùn)行鏡像,創(chuàng)建鏡像實(shí)例,即運(yùn)行容器:
docker run -it -p 192.168.5.109:8080:8888 blogapp:1.0
可以看到,項(xiàng)目已經(jīng)正常開啟,瀏覽器可以正常訪問:
7.導(dǎo)出鏡像為tar包:
docker image save -o blogapp.tar blogapp:1.0
8.在新機(jī)導(dǎo)入tar包為鏡像:
docker load blogapp.tar
9.查看新導(dǎo)入的鏡像:
10.在新機(jī)運(yùn)行鏡像,后臺(tái)開啟容器:
docker run -it -p 192.168.5.110:8080:8888 blogapp:1.0
可以看到后臺(tái)開啟成功,瀏覽器訪問新址:
目標(biāo):準(zhǔn)備一個(gè)定制的 Python 基礎(chǔ)鏡像?;A(chǔ)鏡像,通常為含最小功能的系統(tǒng)鏡像,之后的應(yīng)用鏡像都以此為基礎(chǔ)。
本項(xiàng)目代碼維護(hù)在 DaoCloud/python-sample-base-image 項(xiàng)目中。
您可以在 GitHub 找到本項(xiàng)目并獲取本文中所提到的所有腳本文件。
制作基礎(chǔ)鏡像
選擇 Ubuntu 官方的 14.04 版本為我們依賴的系統(tǒng)鏡像。
FROM ubuntu:trusty
因所有官方鏡像均位于境外服務(wù)器,為了確保所有示例能正常運(yùn)行,可以使用與官方鏡像保持同步的 DaoCloud 境內(nèi)鏡像:
dockerfile
FROM daocloud.io/ubuntu:trusty
設(shè)置鏡像的維護(hù)者,相當(dāng)于鏡像的作者或發(fā)行方。
MAINTAINER Captain Dao support@daocloud.io
用 RUN 命令調(diào)用 apt-get 包管理器安裝 Python 環(huán)境所依賴的程序包。
安裝依賴包相對比較固定,因此該動(dòng)作應(yīng)該盡量提前,這樣做有助于提高鏡像層的復(fù)用率。
安裝完依賴后打掃衛(wèi)生可以顯著的減少鏡像大小。
RUN apt-get update \
apt-get install -y python \
python-dev \
python-pip \
rm -rf /var/lib/apt/lists/*
以下是一個(gè)不建議的做法,原因是比上述命令多添加了一層鏡像,然而并沒有降低總鏡像的體積。
dockerfile
RUN apt-get update \
apt-get install -y python \
python-dev \
python-pip
RUN rm -rf /var/lib/apt/lists/*
用 RUN 命令調(diào)用 mkdir 來準(zhǔn)備一個(gè)干凈的放置代碼的目錄。
RUN mkdir -p /app
指定其為當(dāng)前的工作目錄。
WORKDIR /app
指定暴露的容器內(nèi)端口地址,最后設(shè)置默認(rèn)啟動(dòng)命令。
EXPOSE 80
CMD ["bash"]
至此一個(gè) Python 的基礎(chǔ)鏡像制作完畢,您可以在本地運(yùn)行 docker build -t my-python-base . 來構(gòu)建出這個(gè)鏡像并命名為 my-python-base。
Python 家族成員眾多,因此需要一個(gè)通用的基礎(chǔ)鏡像,并在此基礎(chǔ)上根據(jù)需求進(jìn)行定制。
由于國內(nèi)網(wǎng)絡(luò)環(huán)境的特殊,在本地運(yùn)行 docker build 的時(shí)間會(huì)很長,并且有可能失敗。推薦使用 DaoCloud Toolbox 和 DaoCloud 的云端 代碼構(gòu)建 功能。
完整 Dockerfile
# Ubuntu 14.04,Trusty Tahr(可靠的塔爾羊)發(fā)行版
FROM daocloud.io/ubuntu:trusty
# 道客船長榮譽(yù)出品
MAINTAINER Captain Dao support@daocloud.io
# APT 自動(dòng)安裝 PHP 相關(guān)的依賴包,如需其他依賴包在此添加
RUN apt-get update \
apt-get install -y python \
python-dev \
python-pip \
# 用完包管理器后安排打掃衛(wèi)生可以顯著的減少鏡像大小
apt-get clean \
apt-get autoclean \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 配置默認(rèn)放置 App 的目錄
RUN mkdir -p /app
WORKDIR /app
EXPOSE 80
CMD ["bash"]
wph95