list private repository python3

本文介绍了一个使用Python脚本查询Docker镜像及其标签列表的方法。通过发送HTTP请求到Docker仓库API,可以获取指定镜像的所有可用标签,并列出Docker仓库中的所有镜像名称。
#! /usr/bin/python3

import json
import urllib.request

urlhead = '10.128.222.245:5000/'

def getTag(image):
requrl = "http://"+urlhead+"/v2/"+image+"/tags/list"
webURL = urllib.request.urlopen(requrl)

#print(webURL.read())
#JSON_object = json.loads(webURL.read()) #this is the line that doesn't work

data = webURL.read()
#print(data)
encoding = webURL.info().get_content_charset('utf-8')
json_data = json.loads(data.decode(encoding))
#print(json_data)
print ( urlhead+ json_data['name']+ ':' + json_data['tags'][0])


requrl = "http://"+urlhead+"/v2/_catalog"
webURL = urllib.request.urlopen(requrl)

data = webURL.read()
#print(data)
encoding = webURL.info().get_content_charset('utf-8')
json_data = json.loads(data.decode(encoding))
#print(json_data)
#print(len(json_data['repositories']))
for element in json_data['repositories']:
#print(element)
getTag(element)
<think>我们正在讨论在CMake项目中包含Python模块的方法。根据引用内容,我们可以总结出几种常见场景: 1. 使用CMake查找Python解释器和开发环境(引用[1]) 2. 构建Python C扩展(引用[2]和引用[3]) 3. 在C++项目中嵌入Python解释器(引用[5]) 下面将分别介绍这些方法。 </think>### 在CMake项目中包含Python模块的完整指南 在CMake项目中集成Python模块主要有三种场景,根据引用内容总结如下: #### 场景1️⃣ **查找Python解释器(基础配置)** 使用CMake 3.12+的现代化查找模块: ```cmake cmake_minimum_required(VERSION 3.12) project(MyProject) # 查找Python解释器和开发环境[^1] find_package(Python COMPONENTS Interpreter Development REQUIRED) # 验证Python版本 if(Python_Interpreter_FOUND) message(STATUS "Python found: ${Python_EXECUTABLE}") message(STATUS "Python版本: ${Python_VERSION}") endif() ``` > ✅ 关键点: > - `COMPONENTS`选项指定查找解释器(`Interpreter`)和开发环境(`Development`) > - 自动设置`Python_INCLUDE_DIRS`和`Python_LIBRARIES`变量[^1] #### 场景2️⃣ **构建Python C扩展** 使用python-cmake-buildsystem模式: ```cmake # 添加Python扩展子项目 include(FetchContent) FetchContent_Declare( python_cmake_buildsystem GIT_REPOSITORY https://github.com/python-cmake-buildsystem/python-cmake-buildsystem ) FetchContent_MakeAvailable(python_cmake_buildsystem) # 创建Python模块 add_library(cmake_example MODULE src/add.cpp src/subtract.cpp ) # 设置Python扩展属性 set_target_properties(cmake_example PROPERTIES PREFIX "" OUTPUT_NAME "cmake_example" SUFFIX "${Python_MODULE_EXTENSION}" ) # 链接Python库 target_link_libraries(cmake_example PRIVATE Python::Module) ``` > 验证安装效果(如引用[3]所示): > ```python > >>> import cmake_example > >>> cmake_example.add(1, 2) > 3 > ``` #### 场景3️⃣ **在C++中嵌入Python解释器** Qt+C++嵌入Python示例(参考引用[5]): ```cmake # 查找Python嵌入环境 find_package(Python COMPONENTS Embed REQUIRED) # 创建C++可执行文件 add_executable(my_app main.cpp) # 链接Python嵌入库 target_link_libraries(my_app PRIVATE Python::Embed) # 部署时复制Python DLL(Windows) if(WIN32) add_custom_command(TARGET my_app POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${Python_LIBRARY_DIRS}/python310.dll" $<TARGET_FILE_DIR:my_app> ) endif() ``` > ⚠️ 关键注意事项: > - 必须使用`Embed`组件而非`Development` > - Windows需手动复制Python DLL到输出目录[^5] > - 初始化代码参考: > ```cpp > #include <Python.h> > Py_Initialize(); // 初始化解释器 > PyRun_SimpleString("print(&#39;Hello from Python!&#39;)"); > Py_Finalize(); // 清理 > ``` #### 高级配置技巧 1. **自定义模块路径** ```cmake # 添加自定义Python模块搜索路径 set(Python_ADDITIONAL_VERSIONS 3.10) list(APPEND Python_MODULE_PATH "${CMAKE_SOURCE_DIR}/custom_python") ``` 2. **运行时环境配置** ```cmake # 设置Python路径环境变量(Linux/macOS) set_target_properties(my_app PROPERTIES ENVIRONMENT "PYTHONPATH=${CMAKE_BINARY_DIR}/python_modules" ) ``` 3. **跨平台处理** ```cmake # 处理Python扩展后缀差异 if(APPLE) set(Python_MODULE_SUFFIX ".so") elseif(WIN32) set(Python_MODULE_SUFFIX ".pyd") endif() ``` #### 验证与调试 1. 检查配置变量: ```bash cmake -B build -S . && cd build ccmake . # 查看所有Python_开头的变量 ``` 2. 测试嵌入执行: ```bash # Windows .\build\Release\my_app.exe # Linux/macOS ./build/my_app ``` > 提示:复杂项目可参考引用[4]中提到的工程管理策略,包括第三方库集成、CI支持和跨平台编译等高级特性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值