导航:首页 > 编程语言 > python环境镜像上传

python环境镜像上传

发布时间:2023-09-10 03:51:46

Ⅰ 【python基础】PIP 镜像源配置轻松搞定

pip 是 python 必不可少的的包管理工具,但是要在国内用得爽,必须要配置镜像源。

有哪些镜像站可用,以及如何配置,网上都有很多分享了。

我常用的是  阿里云镜像站 。

这里有一点比较麻烦的地方,就是是 linux 和 Windows 环境下的 pip 配置文件的名字和位置都不同,经常混淆。

今天就教大家一招,快速搞定:

执行完上面两条命令就可以啦。

pip config set 命令能自动把配置写入到用户对应的配置文件中:

[global]

index-url = https://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

命令虽然方便,但是参数格式复杂,记虚山住不太容易,要是想改一下也挺麻烦,

所以我们进一步了解一下细节。

“ 下面我以 Windows 系统为例,实际在 Linux 系统也是类似

查看配置

执行 pip config list 命令可以显示已经有了哪些配置:

pip config list

global.index-url='http://mirrors.aliyun.com/pypi/simple/'

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='http://mirrors.aliyun.com/pypi/simple/'

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

就能自动打开配置文件,把拷贝好的配置文件内容贴进去就可以啦。

Ⅱ Python 镜像源设置与代理

1、在%appdata%目录下,新建文件夹pip
2、在pip文件夹下新建pip.ini文件

内容如下

1、安装nexus3,可以原生安装,也可以用docker安装,具体步骤自己网络
2、添加python仓库代理,参考 https://blog.csdn.net/u010674101/article/details/119895993

【重点】

Ⅲ python3.7基础镜像有多大

选择基础镜像的难题
在使用Docker部署某类服务时,第一个面临的问题就是选择一个基础镜像。那么如何选择基础镜像更有利于我们的工作呢?

我们知道docker是基于linux的,任何一个镜像,其包含的 bins/libs/files 都可以认为是属于特定linux版本的一部分。linux一切皆文件的思想下,我们在使用docker制作服务镜像部署时,包管理、环境设置、程序安装、命令格式、文件系统、兼容性等对于不同linux版本都可能有一些区别,所以,选择一个习惯使用的linux版本就变得尤为重要。
举例来说,我需要经常用docker部署Python应用。在docker hub中选择哪个基础镜像呢?搜索“适合Python开发的Docker镜像”会有很多文章,常用的主要有Alpine、Stretch、Jessie等,默认版本是基于Ubuntu的,但是太大了。

Alpine是一个微型linux系统,选择这个版本镜像的很多,因为它足够小,但是实际项目使用时却发现各种各样的问题。最大问题就是它的c运行库采用 musl-libc 而不是linux各发行版的 glibc,所以涉及c运行时会有兼容性的问题。

2、定制基础镜像
在选择基础镜像的问题上踩坑无数之后,决定换个角度想:为什么不基于特定的linux版本,自己制作一个基础镜像呢?这样自己又熟悉,又有开发环境来验证问题,而且很多制作应用镜像时遇到的问题,都可以在定制的基础镜像中一次性解决。

从这个想法出发,我选择熟悉的linux版本基础镜像,然后在其中按需求安装Python环境,一切都跟在服务器上安装Python环境一样,这不就又回到了熟悉的操作了吗?不同的是,这些只需要做一次就可以了,得到自己定制的Python基础镜像,后面制作各种应用镜像时,只需要pip安装依赖库、复制文件、添加命令就可以了。

这个方法同样适用其他的环境基础镜像定制,选择自己的linux基础镜像,在其中像往常一样安装需要的环境。这样,就可以从镜像里不熟悉的文件系统中解脱出来了。

3、定制CentOS系统Python基础镜像
下面给出一个实例:

开发环境:CentOS 7

Python版本:3.6

# 完整功能python3 imiyuer/python:3.6.4-centos
FROM centos:7.5.1804
MAINTAINER imiyuer <[email protected]>

ENV PATH $PATH:/usr/local/python3/bin/
ENV PYTHONIOENCODING utf-8

RUN set -ex \
# 替换yum源
&& mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup \
&& curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo \
&& sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo \
# 安装python依赖库
&& yum makecache \
&& yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make wget \
&& yum clean all \
&& rm -rf /var/cache/yum \
# 下载安装python3
&& wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz \
&& mkdir -p /usr/local/python3 \
&& tar -zxvf Python-3.6.4.tgz \
&& cd Python-3.6.4 \
&& ./configure --prefix=/usr/local/python3 \
&& make && make install && make clean \
# 修改pip默认镜像源
&& mkdir -p ~/.pip \
&& echo '[global]' > ~/.pip/pip.conf \
&& echo 'index-url = https://pypi.tuna.tsinghua.e.cn/simple' >> ~/.pip/pip.conf \
&& echo 'trusted-host = pypi.tuna.tsinghua.e.cn' >> ~/.pip/pip.conf \
&& echo 'timeout = 120' >> ~/.pip/pip.conf \
# 更新pip
&& pip3 install --upgrade pip \
# 安装wheel
&& pip3 install wheel \
# 删除安装包
&& cd .. \
&& rm -rf /Python* \
&& find / -name "*.py[co]" -exec rm '{}' ';' \
# 设置系统时区
&& rm -rf /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
登录后复制

比如我的生产环境是centos:7.5.1804,就选择它作为基础镜像。

将Python安装在/usr/local/python3,所以把程序路径添加到PATH环境变量,后续安装的python程序就不需要再添加环境变量或软连接。添加Python的encoding环境变量为utf-8。

后面下载安装Python的过程就都比较熟悉了,玩过Python的人都知道。

最终生成镜像大小:453MB,感觉还好。alpine镜像是90M但是很坑,默认python镜像是689MB。

几点说明:

1、RUN中尽量使用 \ &&连接命令的方式,减少镜像层数,可以一定程度减少体积。

2、尽可能删除不需要的文件,也是为了减少镜像体积。

3、Python默认不安装wheel,但是第三方库常需要使用wheel安装,所以加上它。

4、docker运行时程序获取系统时间时,如打印日志等,获取的是docker镜像内文件系统的时区设置,默认是格林尼治标准时区,所以需要设置为所在的时区。

Ⅳ Python项目打包为docker镜像并迁移

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 镜像还好吗

随着 k8s 集群规模变大,以及弹性扩容的触发,导致 harbor 仓库的瓶颈问题逐渐暴露出来,目前也做了一些优化措施:

在做镜像优化的时候,发现之前我们的 python 提速方案还有一些瑕疵,所以有了这里的分析。
在 Python 项目构建 Docker 镜像时,经常遇到项目源码才几百 KB,但是安装的依赖能高达数百 MB,甚至 GB,这不仅使镜像体积变的很大,而且因为网络安装依赖包导致严重拖慢构建速度。

注意:这里仅关系依赖问题,所以忽略源码部分

示例 1:

相当糟糕,依赖安装了 713MB,花了 5 分钟,太慢了。

基于刚才已经构建过的依赖镜像,再次去构建时间工作的镜像
示例 2:

为什么这里再次安装 requirements.txt,直接删掉该步骤不就好了吗?
实际情况下,研发人员可能会在仓库中修改 requirements.txt,如果这里不再次安装下,最终发版可能就要提示缺少包而报错了。这里再次安装下依赖,就是防止该问题。

再次构建,相当好,8 秒,再次安装的依赖层 0B(我们这里没有模拟研发人员修改 requirements.txt 的情况),我们取得了巨大的进步。

这个词有点像电影里的镜头,以示例 2 中的 Dockerfile 再次构建:
示例 3:

问题来了,随着岁月的流逝,构建时间怎么变成了 2 分钟,再次安装的依赖层 173MB(我们这里没有模拟研发人员修改 requirements.txt 的情况)

原来安装依赖的时候除了上面 requirements.txt 中写好的依赖,还有一些没有出现在 requirements.txt 中的依赖,而这些依赖的版本如 grpcio>=1.8.6 会随着时间的推移,而产生不同的版本
...
Requirement already satisfied: grpcio>=1.8.6 in /usr/local/lib/python3.6/site-packages (from tensorflow==2.0.0b1->-r /code/requirements.txt (line 9)) (1.34.1)
Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.6/site-packages (from tensorflow==2.0.0b1->-r /code/requirements.txt (line 9)) (0.33.4)
...

Ⅵ 【Python】 设置 pip 默认下载路径(含国内镜像源)

如使用 清华镜像 安装 lxml 库的命令如下所示:

在c盘下找到当前用户,进入当前用户命名的文件夹后创建一个新文件夹“pip”,在pip中创建一个文本文件pip.txt,将后缀名改为.ini

pip.ini文件内容(设置国内镜像源,这里使用的是清华镜像,文章后面提供有其他常用镜像)

保存即可,如安装 lxml 库的命令如下所示(默认为清华镜像,不需要加 -i 属性):

        清华:https://pypi.tuna.tsinghua.e.cn/simple

        阿里云:http://mirrors.aliyun.com/pypi/simple/

        中国科技大学 https://pypi.mirrors.ustc.e.cn/simple/

        华中理工大学:http://pypi.hustunique.com/

        山东理工大学:http://pypi.stlinux.org/ 

        豆瓣:http://pypi.douban.com/simple/

阅读全文

与python环境镜像上传相关的资料

热点内容
压缩文件zip怎么解压不了 浏览:390
如何看苹果appstore软件是否收费 浏览:463
android发送字符串 浏览:13
python3最好的书籍推荐 浏览:684
蓝牙模块与单片机连接 浏览:665
mssql命令大全 浏览:193
mpv服务器怎么样 浏览:599
服务器迁移后怎么恢复 浏览:249
在vfp中如何显示和隐藏命令 浏览:283
如何部署地图服务器 浏览:737
安卓系统云闪付哪个app好用 浏览:111
程序员一天完成几个需求 浏览:960
请运行命令来卸载oracle 浏览:243
知识问答哪个app好 浏览:398
数控铣床编程代码大全 浏览:869
程序员相亲被骂 浏览:810
r6单片机 浏览:614
牛客编程题怎么评分 浏览:189
希沃白板怎么在安卓重置系统 浏览:845
python处理json过大 浏览:260