欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 鏡像環(huán)境搭建總結(jié)

 更新時(shí)間:2022年09月22日 10:24:58   作者:FairlyPerson  
這篇文章主要介紹了python 鏡像環(huán)境搭建總結(jié),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

取最小安裝包

使用python-3.7.3-embed-win32,注意對(duì):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,并在有網(wǎng)終的情況下安裝好環(huán)境

::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打包好環(huán)境,注意打包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

壓縮清理后的環(huán)境,并傳入有網(wǎng)絡(luò)的環(huán)境后,解壓基礎(chǔ)環(huán)境

::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

編寫配置環(huán)境變量的腳本

:: 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服務(wù),并初始化好環(huán)境,這里需要依賴nssm,需要自行下載,注意nssm需要管理員權(quán)限

::install_service.bat
 
set svr_name=devpi
set svr_dir=d:\devip_server_datas
cd /d "%~dp0"
::用于獲取權(quán)限
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

如果不需要了,則卸載相關(guān)服務(wù)

::remove_service.bat
 
net stop devpi
nssm remove devpi confirm
pause

鏡像更新問題

編寫基礎(chǔ)功能腳本文件, 并放到pythong.exe同級(jí)目錄

# 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=請(qǐng)輸入需要下載的包名,用空格隔開:
inv down -p "%down_pkgs%"
 
goto :download
pause

導(dǎo)出需要鏡像的包,并上傳鏡像包到無網(wǎng)絡(luò)的環(huán)境里

:: 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=請(qǐng)輸入需要下載的包名 用空格隔開
inv up
pause

導(dǎo)入鏡像

to do...

到此這篇關(guān)于python 鏡像環(huán)境搭建總結(jié)的文章就介紹到這了,更多相關(guān)python 鏡像搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中的Nonetype類型怎么判斷

    Python中的Nonetype類型怎么判斷

    這篇文章主要介紹了Python中的Nonetype類型怎么判斷?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python深入了解defaultdict之輕松處理默認(rèn)值與復(fù)雜數(shù)據(jù)結(jié)構(gòu)

    Python深入了解defaultdict之輕松處理默認(rèn)值與復(fù)雜數(shù)據(jù)結(jié)構(gòu)

    在Python標(biāo)準(zhǔn)庫collections模塊中,defaultdict提供了一種在字典訪問不存在的鍵時(shí)自動(dòng)提供默認(rèn)值的便利方式,這篇文章詳細(xì)介紹了defaultdict的使用方法、基礎(chǔ)概念、創(chuàng)建實(shí)例的步驟以及應(yīng)用場(chǎng)景,需要的朋友可以參考下
    2024-09-09
  • 使用python把json文件轉(zhuǎn)換為csv文件

    使用python把json文件轉(zhuǎn)換為csv文件

    這篇文章主要介紹了使用python把json文件轉(zhuǎn)換為csv文件,幫助大家更好的利用python處理數(shù)據(jù),感興趣的朋友可以了解下
    2021-03-03
  • python生成ppt的方法

    python生成ppt的方法

    這篇文章主要為大家詳細(xì)介紹了python生成ppt的方法,通過python生成ppt文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • numpy中np.dstack()、np.hstack()、np.vstack()用法

    numpy中np.dstack()、np.hstack()、np.vstack()用法

    numpy里dstack, hstack, vstack, 都有拼接的作用,本文詳細(xì)的介紹了np.dstack()、np.hstack()、np.vstack()用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • python動(dòng)態(tài)加載變量示例分享

    python動(dòng)態(tài)加載變量示例分享

    這篇文章主要介紹了python動(dòng)態(tài)加載變量示例,需要的朋友可以參考下
    2014-02-02
  • Python turtle實(shí)現(xiàn)貪吃蛇游戲

    Python turtle實(shí)現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了Python turtle實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 深入學(xué)習(xí)Python可變與不可變對(duì)象操作實(shí)例

    深入學(xué)習(xí)Python可變與不可變對(duì)象操作實(shí)例

    Python中的數(shù)據(jù)類型可以分為可變對(duì)象和不可變對(duì)象,了解它們之間的區(qū)別對(duì)于編寫高效的Python代碼至關(guān)重要,本文將詳細(xì)介紹可變對(duì)象和不可變對(duì)象的概念,以及如何正確地使用它們來提高代碼的性能和可讀性
    2023-12-12
  • 一文教你向Pandas?DataFrame添加行

    一文教你向Pandas?DataFrame添加行

    這篇文章主要給大家介紹了關(guān)于如何向Pandas?DataFrame添加行的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 使用Python制作一個(gè)打字訓(xùn)練小工具

    使用Python制作一個(gè)打字訓(xùn)練小工具

    這篇文章主要介紹了用Python制作一個(gè)打字訓(xùn)練小工具,本文通過實(shí)例代碼的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論