pip 是 python 必不可少的的包管理工具,但是要在国内用得爽,必须要配置镜像源。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的五寨网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
有哪些镜像站可用,以及如何配置,网上都有很多分享了。
我常用的是 阿里云镜像站 。
这里有一点比较麻烦的地方,就是是 Linux 和 Windows 环境下的 pip 配置文件的名字和位置都不同,经常混淆。
今天就教大家一招,快速搞定:
执行完上面两条命令就可以啦。
pip config set 命令能自动把配置写入到用户对应的配置文件中:
[global]
index-url =
[install]
trusted-host=mirrors.aliyun.com
命令虽然方便,但是参数格式复杂,记住不太容易,要是想改一下也挺麻烦,
所以我们进一步了解一下细节。
“ 下面我以 Windows 系统为例,实际在 Linux 系统也是类似
查看配置
执行 pip config list 命令可以显示已经有了哪些配置:
pip config list
global.index-url=''
install.trusted-host='mirrors.aliyun.com'
带上一个 -v 选项:
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'
“ 这里有一点不太好的地方是不显示配置是在哪个文件里。
就把它尝试获取的配置文件名完整路径列出来了。前面的 global 和 user 和 site 分别表示配置文件生效的范围:
global - 全局,一般不用
user - 当前用户,推荐
site - 只针对某一个 python 解释器
可以看到 user 有两个地方,其中配置任何一个都是可以的。
有的网络文章推荐的手动创建文件地址是前面那个,但是 pip 默认创建的是后者。
编辑配置
在命令行直接执行 pip config edit 会自动为我们打开配置文件,但是在 Windows 环境下还不行:
pip config edit
ERROR: Could not determine editor to use.
需要手动指定一个编辑器,就用记事本就行了:
pip config edit --editor notepad
“ Linux 系统中编辑器可以使用 vi,也可以是你习惯的其它编辑器
如果你从来没有设置过,它会报 找不到指定路径,这是因为相应的文件夹没有创建。
设置配置
通过 pip config set 命令可以直接设置配置项,它会自动创建没有的文件夹和文件。但是必须要给定一个配置项:
pip config set
ERROR: Got unexpected number of arguments, expected 2. (example: "pip config set [name] [value]")
我们随便写一个配置:
pip config set x.y z
Writing to C:\Users\davy\AppData\Roaming\pip\pip.ini
然后再执行上面的
pip config edit --editor notepad
就能自动打开配置文件,把拷贝好的配置文件内容贴进去就可以啦。
1.安装docker服务:
centos 下直接yum安装
yum install docker
2.修改docker仓库地址为国内:
略
3.编写Dockerfile, 如下:
4.制作镜像:
docker build -f Dockerfile -t blogapp:1.0 .
ps:
最后一个参数是.号,别忘了加
制作镜像可能是一个漫长的过程。。。
途中有问题会中止,需要检查问题并修改Dockerfile,然后重新开始。。。
5.查看制作的镜像:
docker images
6.运行镜像,创建镜像实例,即运行容器:
docker run -it -p 192.168.5.109:8080:8888 blogapp:1.0
可以看到,项目已经正常开启,浏览器可以正常访问:
7.导出镜像为tar包:
docker image save -o blogapp.tar blogapp:1.0
8.在新机导入tar包为镜像:
docker load blogapp.tar
9.查看新导入的镜像:
10.在新机运行镜像,后台开启容器:
docker run -it -p 192.168.5.110:8080:8888 blogapp:1.0
可以看到后台开启成功,浏览器访问新址:
目标:准备一个定制的 Python 基础镜像。基础镜像,通常为含最小功能的系统镜像,之后的应用镜像都以此为基础。
本项目代码维护在 DaoCloud/python-sample-base-image 项目中。
您可以在 GitHub 找到本项目并获取本文中所提到的所有脚本文件。
制作基础镜像
选择 Ubuntu 官方的 14.04 版本为我们依赖的系统镜像。
FROM ubuntu:trusty
因所有官方镜像均位于境外服务器,为了确保所有示例能正常运行,可以使用与官方镜像保持同步的 DaoCloud 境内镜像:
dockerfile
FROM daocloud.io/ubuntu:trusty
设置镜像的维护者,相当于镜像的作者或发行方。
MAINTAINER Captain Dao support@daocloud.io
用 RUN 命令调用 apt-get 包管理器安装 Python 环境所依赖的程序包。
安装依赖包相对比较固定,因此该动作应该尽量提前,这样做有助于提高镜像层的复用率。
安装完依赖后打扫卫生可以显著的减少镜像大小。
RUN apt-get update \
apt-get install -y python \
python-dev \
python-pip \
rm -rf /var/lib/apt/lists/*
以下是一个不建议的做法,原因是比上述命令多添加了一层镜像,然而并没有降低总镜像的体积。
dockerfile
RUN apt-get update \
apt-get install -y python \
python-dev \
python-pip
RUN rm -rf /var/lib/apt/lists/*
用 RUN 命令调用 mkdir 来准备一个干净的放置代码的目录。
RUN mkdir -p /app
指定其为当前的工作目录。
WORKDIR /app
指定暴露的容器内端口地址,最后设置默认启动命令。
EXPOSE 80
CMD ["bash"]
至此一个 Python 的基础镜像制作完毕,您可以在本地运行 docker build -t my-python-base . 来构建出这个镜像并命名为 my-python-base。
Python 家族成员众多,因此需要一个通用的基础镜像,并在此基础上根据需求进行定制。
由于国内网络环境的特殊,在本地运行 docker build 的时间会很长,并且有可能失败。推荐使用 DaoCloud Toolbox 和 DaoCloud 的云端 代码构建 功能。
完整 Dockerfile
# Ubuntu 14.04,Trusty Tahr(可靠的塔尔羊)发行版
FROM daocloud.io/ubuntu:trusty
# 道客船长荣誉出品
MAINTAINER Captain Dao support@daocloud.io
# APT 自动安装 PHP 相关的依赖包,如需其他依赖包在此添加
RUN apt-get update \
apt-get install -y python \
python-dev \
python-pip \
# 用完包管理器后安排打扫卫生可以显著的减少镜像大小
apt-get clean \
apt-get autoclean \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 配置默认放置 App 的目录
RUN mkdir -p /app
WORKDIR /app
EXPOSE 80
CMD ["bash"]
wph95