python 镜像环境搭建总结

目录
  • 取最小安装包
  • 镜像更新问题

取最小安装包

使用python-3.7.3-embed-win32,注意对:python37._pth的修改,修改方法:

# uncomment_pth.py
from pathlib import Path
def main(path_cur):
    for p in path_cur.glob('*._pth'):
        if not (p.suffix == '._pth' and p.stem.startswith('python')):
            continue
        print('found: ' + str(p))
        f_lines = []
        with p.open() as f:
            for line in f.readlines():
                if line.startswith('#import site'):
                    line = line.split('#', 2)[1]
                f_lines.append(line)
        with p.open('w') as f:
            f.writelines(f_lines)
        return True
    return False

if __name__ == '__main__':
    path_cur = Path('.')
    main(path_cur)

使用get-pip.py安装pip,并在有网终的情况下安装好环境

::first_install_with_net.bat

set old_dir=%cd%

cd /d "%~dp0"

python uncomment_pth.py
python get-pip.py
pip install devpi devpi-web

cd /d "%old_dir%"
pause

使用pip打包好环境,注意打包get-pip.py

::pkg_py_env.bat

set req=..\req_pkg_py_env.txt
set whs=..\wheels
pip freeze >%req%
pip wheel -r %req% -w %whs%
pip wheel pip -w %whs%
pip wheel setuptools -w %whs%
pip wheel wheel -w %whs%
pip uninstall wheel -y
pip uninstall setuptools -y
:: pip 不能用pip卸载自己,需要用下列语句
python -m pip uninstall pip -y
rd /s /q Lib
rd /s /q Scripts
pause

压缩清理后的环境,并传入有网络的环境后,解压基础环境

::unpkg_py_env.bat

set req=..\req_pkg_py_env.txt
set whs=..\wheels
set get-pip=%~dp0get-pip.py
set uncomment=%~dp0uncomment_pth.py
python %uncomment%
python %get-pip% --no-index --find-links=%whs%
set PATH=%PATHON_HOME%\Scripts
pip install  -r %req% --no-index --find-links=%whs%

pause

编写配置环境变量的脚本

:: py_env.bat

@echo off
set old_dir=%cd%
cd /d "%~dp0"
set PATHON_HOME=%cd%
set PATH=%PATHON_HOME%\;%PATHON_HOME%\Scripts;%PATH%
title Ptython Env:PATHON_HOME=%PATHON_HOME%
cd /d "%old_dir%"

if "%1" == "" call cmd 

REM @echo off
REM set PYTHONHOME=%cd%
REM set PATH=%PYTHONHOME%/Scripts;%PYTHONHOME%;%PATH%

REM set PYTHONPATH=%PYTHONHOME%/Lib
REM title %PYTHONHOME%\python.exe
REM call cmd

安装devpi-server服务,并初始化好环境,这里需要依赖nssm,需要自行下载,注意nssm需要管理员权限

::install_service.bat

set svr_name=devpi
set svr_dir=d:\devip_server_datas
cd /d "%~dp0"
::用于获取权限
nssm
call py_env.bat
devpi-init --serverdir %svr_dir%
devpi-gen-config --serverdir %svr_dir%
nssm install %svr_name% "%cd%\Scripts\devpi-server.exe" --serverdir %svr_dir% --host 0.0.0.0
pause
nssm start %svr_name%
devpi use root/pypi --always-set-cfg=yes
pause

如果不需要了,则卸载相关服务

::remove_service.bat

net stop devpi
nssm remove devpi confirm
pause

镜像更新问题

编写基础功能脚本文件, 并放到pythong.exe同级目录

# tasks.py

import datetime
import io
import os
from invoke import task
from tqdm import tqdm

# @task
# def package(c):
#     dir_path = datetime.datetime.now().strftime('%Y_%m_%d-%H_%m_%S-devpi_server_datas')
#     c.run(f'devpi-export.exe --serverdir D:\\devip_server_datas --include-mirrored-files {dir_path}')
#     c.run(fr'"C:\Program Files\WinRAR\Rar.exe" a {dir_path}.zip {dir_path}')
#     # print('hello')

@task(iterable=['p'])
def down(c, p):
    from pathlib import Path
    Path(r'tmp_whl_dirs').mkdir(exist_ok=True)
    c.run(fr'cd tmp_whl_dirs & pip download {" ".join(p)}')
@task
def up(c):
    dir_path = datetime.datetime.now().strftime('%Y_%m_%d-%H_%m_%S-devpi_server_datas')
    c.run(f'devpi-export.exe --serverdir D:\\devip_server_datas --include-mirrored-files {dir_path}')
    c.run(fr'"C:\Program Files\WinRAR\Rar.exe" a {dir_path}.zip  {dir_path}')

    from ftplib import FTP
    ftp = FTP('xxx')
    ftp.login('xxx', 'xxxxx')
    # ftp.cwd('devip_server_datas')

    with open(dir_path + '.zip', 'rb') as f:
        f.seek(0, io.SEEK_END)
        file_size = f.tell()
        f.seek(0, io.SEEK_SET)
        with tqdm(unit='blocks', unit_scale=True, leave=True, miniters=1, desc='Uploading......',
                  total=file_size) as tqdm_instance:
            ftp.storbinary(f'STOR {dir_path}.zip', f, 2048, callback=lambda sent: tqdm_instance.update(len(sent)))
    c.run('net stop devpi')
    c.run('net start devpi')
        # ftp.storbinary(f'STOR {dir_path}.zip', f)
    # print('finished!!')
    # os.unlink(dir_path)

下载需要的包:

:: down.bat
@echo off
set old_dir=%cd%
cd /d "%~dp0"
set PATHON_HOME=%cd%
set PATH=%PATHON_HOME%\;%PATHON_HOME%\Scripts;%PATH%
title Ptython Env:PATHON_HOME=%PATHON_HOME%

:download

set /p down_pkgs=请输入需要下载的包名,用空格隔开:
inv down -p "%down_pkgs%"

goto :download
pause

导出需要镜像的包,并上传镜像包到无网络的环境里

:: up_load.bat
@echo off
set old_dir=%cd%
cd /d "%~dp0"
set PATHON_HOME=%cd%
set PATH=%PATHON_HOME%\;%PATHON_HOME%\Scripts;%PATH%
title Ptython Env:PATHON_HOME=%PATHON_HOME%
REM set /p down_pkgs=请输入需要下载的包名 用空格隔开
inv up
pause

导入镜像

to do...

到此这篇关于python 镜像环境搭建总结的文章就介绍到这了,更多相关python 镜像搭建内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-09-20

详解python开发环境搭建

虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运行环境(http://www.jb51.net/softs/416037.html),目前比较稳定的是python-3.5.2 2)上pycharm官网下载最新版的IDE(http://www.jb51.net/softs/299378.html),官网提供了mac.windows和linux三种版

python+VTK环境搭建及第一个简单程序代码

简介: Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学.图像处理和可视化.Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk. 在Windows环境下用Python语言开发VTK程序 1.安装Python集成开发环境IDLE,相信大家已经轻车熟路,如果不了解,大家可以参考:运行

Windows 7下Python Web环境搭建图文教程

最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境. 关于Python的版本 进入Python的网站,鼠标移到导航条上的下载,我们会发现提供两下主版本的下载链接! 这两个之间存在什么差别呢? 个人理解,2.7.x的版本为更加稳定的版本,而3.x的版本则是比较前卫的版本,包含了很多新功能新特性之类的: 但如果想要用Python开发一个新项目,那么该如何选择Python版本呢?大部分Python库都同时支持Python

Linux CentOS Python开发环境搭建教程

CentOS安装Python 1.CentOS已经自带安装了2.x版本,先尝试python命令检查已安装的版本.如果你使用rpm.yum或deb命令安装过,请使用相对命令查询. 2.复制安装文件链接.在https://www.python.org/ftp/python/ 进入对应的文件夹,选择Python-3.x.0.tgz右键复制链接 3.在centOS下载tgz安装文件.使用wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.t

Eclipse中Python开发环境搭建简单教程

一.背景介绍 Eclipse是一款基于Java的可扩展开发平台.其官方下载中包括J2EE方向版本.Java方向版本.C/C++方向版本.移动应用方向版本等诸多版本.除此之外,Eclipse还可以通过安装插件的方式进行诸如Python.Android.PHP等语言的开发. Eclipse+PyDev插件是最主流的Python开发环境了,本文将要介绍的就是使用Eclipse与PyDev插件. 二.Python安装 Python的安装共分为三个步骤:下载python.配置环境变量.测试安装成功. (1

selenium+python自动化测试环境搭建步骤

相对于自动化测试工具QTP来说,selenium小巧.免费,而且兼容Google.FireFox.IE多种浏览器,越来越多的人开始使用selenium进行自动化测试. 我是使用的python 2.7,下面说一下selenium+Python的自动化测试环境搭建. 安装Python环境,从python官网下载安装包 双击安装包,进行安装 可以选择python的安装目录,按步骤安装,直至完成. 在早期的版本中,需要单独安装setuptools和pip,在新的python安装包版本中已经集成了setu

Python接口测试环境搭建过程详解

环境搭建 python 安装:建议使用python3.7 pycharm安装 requests安装 :pip3 install requests requests 基本使用 usage: >>> import requests >>> r = requests.get('https://www.python.org') >>> r.status_code 200 >>> 'Python is a programming languag

MAC平台基于Python Appium环境搭建过程图解

前言 最近笔者要为python+appium课程做准备,mac在2019年重新安装了一次系统,这次重新在mac下搭建appium环境,刚好顺带写个文稿给大家分享分享搭建过程. 一.环境和所需软件概述 1.1 目前环境: MacOS(10.15.3) 1.2 所需软件: jdk-8u91-macosx-x64.dmg (jdk1.8及以上版本应该都可以) android-sdk_r24.4.1-macosx.zip (mac版本的android-sdk) genymotion-3.0.4.dmg

Python selenium环境搭建实现过程解析

一:自动化了解知识 工具安装 什么样的项目适合做自动化? 自动化测试一般在什么阶段开始实施? 你们公司自动化的脚本谁来维护?如何维护? 自动化用例覆盖率是多少? 自动化的原理 通过 webdriver 模块中的关键字和浏览器驱动以及页面元素定位进行操作达到模拟人工操作的效果 你们公司的自动化流程是如何展开的? 对自动化的业务需求进行评审 对自动化测试的场景进行选择, 测试工具的选择, 在功能用例中摘选出该场景的用例 根据评审后的场景输出自动化用例, 执行测试用例, 定期维护脚本 二.工具安装 安

python elasticsearch环境搭建详解

windows下载zip linux下载tar 下载地址:https://www.elastic.co/downloads/elasticsearch 解压后运行:bin/elasticsearch (or bin\elasticsearch.bat on Windows) 检查是否成功:访问 http://localhost:9200 linux下不能以root用户运行, 普通用户运行报错: java.nio.file.AccessDeniedException 原因:当前用户没有执行权限 解