准备 #2.1 注册PyPI账号 https://pypi.org/ #2.2 安装环境 pip3 install twine #3 开始 #3.1 新建文件夹 . ├── get_time # 文件夹.../时间转时间戳/时间戳转时间', # 项目描述 packages=['get_time'], # 包名 install_requires=[], entry_points={...timestamp_to_str', 'str_to_timestamp=get_time:str_to_timestamp', ] } # 重点 ) #3.2 上传...打包 在项目的目录下(和刚刚新建setup.py同级目录) python3 setup.py sdist build image.png 上传 twine upload dist/*...image.png image.png #3.3 测试 pip3 insatll get-time==0.0.4 pip3 lit # 查看安装过的包 image.png image.png
它允许你在上传前验证你的包它支持上传到PyPI和其他包索引最重要的是,Twine让整个发布流程变得简单直观,大大降低了新手的入门门槛。为什么要使用Twine?...更好的错误处理 - Twine提供清晰的错误信息,帮你快速定位问题上传前验证 - 可以在上传前检查你的包是否符合PyPI的要求,避免发布有问题的包支持多种包格式 - 支持上传wheel和sdist格式的包更现代的工具链...更好的错误处理 - Twine提供清晰的错误信息,帮你快速定位问题上传前验证 - 可以在上传前检查你的包是否符合PyPI的要求,避免发布有问题的包支持多种包格式 - 支持上传wheel和sdist格式的包更现代的工具链...检查你的包(强烈推荐!)在上传前,先检查一下你的包是否有问题:twine check dist/*这个命令会检查你的包是否符合PyPI的要求,如果有问题会给出提示。解决所有问题后再上传是个好习惯!...描述渲染问题如果你的README使用了Markdown但在PyPI上没有正确渲染,确保在setup.py中设置了:pythonlong_description_content_type="text/markdown
创建项目文件夹 mkdir dada_openapi_python cd dada_openapi_python 创建包文件夹 在里面在创建一个 dada_openapi_client 的文件夹,这个文件夹的名称我故意创建的和上层目录不一样...,以免误会,这个文件夹其实就是包名称了 mkdir dada_openapi_client cd dada_openapi_client 编写包代码 根据各自的业务场景来,我下面列举一个我编写的 项目...制作PyPI包 现在项目逻辑已经完成,那么开始做 PyPI 的包了 创建setup.py文件 在dada_openapi_python文件夹中,创建配置文件setup.py,并填写配置,下面贴出我的配置...upload dist/* 成功上传如下: Uploading distributions to https://upload.pypi.org/legacy/ Uploading dada_openapi_client...(403): You are not allowed to edit 'xxx' package information 你需要先注册你的包才可以开始上传 Server response (401):
pypi注册与配置 在pypi的官网:https://pypi.python.org/pypi 注册自己的账号 激活账号之后,我们还需要将在本地配置一份文件 在用户的根目录创建文件 : .pypirc...在文件里输入自己的账号和密码 $ nano ~/.pypirc # 创建文件 [distutils] index-servers = pypi [pypi] repository: https:...//pypi.python.org/pypi username: 你的账号 password: 你的密码 配置好之后,我们前期准备就做好了 配置安装项 由于是最基本的记录 只需要在项目根目录配置setup.py...(本地) 打包项目 我推荐用Wheel来打包项目 如果没有安装 请先: pip install wheel 打包命令 python setup.py bdist_wheel 命令成功执行之后,我们的源文件就在...上传项目 这里也是一行命令的事 python setup.py bdist_wheel upload 这样就能在自己的pypi主页看到上传上去的程序了 . 接下来就可以直接用pypi安装啦 . ?
写在前面的话 大约一年前,Python软件基金会(Python Software Foundation,RFI)公开了一个信息请求(RFI),讨论的是如何检测上传到PyPI的恶意软件包,这显然是一个影响几乎每个包管理器的实际问题...事实上,像PyPI这样的包管理器是几乎每个公司都依赖的关键基础设施。这是我感兴趣的一个领域,所以我用我的想法回应我们应该如何去处理这个问题。...在这篇文章中,我将详细介绍如何安装和分析PyPI中的每个包,并寻找其中潜在的恶意活动。...使用Sysdig监控系统调用 实际上,社区已经提供了很多能够帮助我们监控系统调用的工具了。...> pypi_full.txt ❯ wc -l pypi_full.txt 268038 pypi_full.txt 针对我们的实验场景,我们需要的是每一个软件包的最新版本
这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器,我们开始将中央仓库的一些资料下载到私服务器上,然后平时我们的maven项目就是直接访问局域网内的私服即可,既节省了网络带宽也会加速项目搭建的进程...项目内部和项目与项目之间也可以共享jar包,达到代码的最大化利用。...一般有两种情况需要我们上传jar包至nexus,一个是本地项目生成的jar包,另一个是我们从第三方拿过来的的中央库中不存在的jar包,前者采用maven工程deploy的方法,后者采用手动上传的方式。...二.手动上传jar包 GAV Parameters GAV Parameters方式只能上传单个jar包,无法携带依赖。...,版本等等 3.添加后提交 4.导入成功后,search该包显示如下: From POM From POM方式,可以将上传jar包的依赖一起上传。
需要注意的是,PyPI上只允许一个版本存在,如果后续代码有了任何更改,再次上传需要增加版本号 author和author_email:项目作者的名字和邮件, 用于识别包的作者。...2.5 发布包到PyPi 1、接下来就是去https://pypi.org/account/register/注册账号,如果有账号的请忽略,记住你的账号和密码,后面上传包会使用。...需要先安装twine(用 twine上传分发包,并且只有 twine> = 1.11.0 才能将元数据正确发送到 Pypi上) pip install twine 3、安装完之后,运行下面的命令将库上传...,上传包,期间会让你输入注册的用户名和密码 twine upload dist/* 输入 PyPI注册的用户名和密码。...3.验证发布PYPI成功 上传完成了会显示success,我们直接可以在PyPI上查看,如下: ? 您可以使用pip来安装包并验证它是否有效。
构建自己的Python包到Pypi 作者:matrix 被围观: 5 次 发布时间:2023-04-28 分类:Python | 无评论 » 安装构建工具 首先确保安装了setuptools...wrapper.py:自己定义的文件,包含功能代码 __init__.py 包定义,以及可引入的方法 配置setup.py setup.py可配置作者、readme、仓库等信息 import os from...https://github.com/Hootrix/text-box-wrapper", ) 构建 $ python3 setup.py sdist bdist_wheel 说明: 将在dist的新文件夹中生成源代码和二进制分发文件...上传到Pypi 确保已经注册了PyPI账户 $ twine upload dist/* 正常操作输入pypi账户和密码即可完成推送 如果账户设置了两步验证可能需要使用api token 保存你的api...token到~/.pypirc文件中,如果没有就自己新建 [pypi] username = __token__ password = pypi-A1************bQ 执行推送后类似下面内容
使用豆瓣源 sudo pip install #package -i http://pypi.douban.com.simple —trusted-host pypi.douban.com
推荐两篇很好的文章 python核心 - 打包与发布 使用ReadtheDocs托管文档 准备 注册账号 很显然地要在Pypi上注册一个账号,记住账号和密码。...安装必要的库 setuptools 原则上安装了pip的环境都有setuptools,但并不影响你去尝试升级一下它。...编写核心代码 接下来我们就可以编写自己的代码了,要注意源代码文件夹(仓库里的my_package文件夹)的名字与setup.py里配置的包名(Name)要一致。...另外在重新上传之前我们要修改version.py里的版本号,以免覆盖了以前的上传。...__init__.py __version__.py 打包上传 在setup.py的同级目录下运行以下命令。
Security Affairs 网站披露,Sonatype 研究人员发现了一个名为“secretslib”的新 PyPI 包,旨在将无文件加密矿工投放到 Linux 机器系统的内存中。...网络安全专家发帖子表示,secretslib PyPI 包将自己描述为“使秘密匹配和验证变得容易”。...但经过仔细分析观察,该软件包在用户 Linux 机器上暗中运行加密矿工(直接从用户的 RAM 中),这种技术主要由无文件的恶意软件和加密器采用。...此外,由于“secretslib”包在运行时会立即删除“tox”,并且“tox”注入的加密货币代码驻留在系统的易失性内存(RAM)中,而不是硬盘驱动器中,因此恶意活动几乎没有留下任何痕迹,某种意义上讲可以说是相当...值得一提的是,几天前,Check Point 研究人员在 Python 包索引 (PyPI) 上发现了另外十个恶意包,这些软件包安装了信息窃取程序,允许攻击者窃取开发人员的私人数据和个人凭据。
pypiserver 是一个最基本的PyPI服务器实现, 可以用来上传和维护Python包. 本文介绍 pypiserver 在Ubuntu上的基本安装, 配置和使用. 1....将分发包上传到 ~/packages 目录下, 接下来就可以访问 pypiserver 上的Python包了. 1.3 安装 pypiserver 上的Python包 在安装和启动 pypiserver...远程上传项目包 如果希望通过python setup.py upload命令将本地项目代码上传到PyPI服务器, 可以通过以下步骤来完成. 2.1 无密码上传项目包 默认情况下, pypiserver...具体-a参数的使用可以查阅_pypiserver_的启动命令帮助, 这里不再展开. pypi-server -P /root/.pypipasswd 接下来, 在需要上传Python包的系统中, 需要配置...我们可以使用-P参数来修改: pypi-server -P /opt/pypiserver/packages 3.3 请求转发 当请求的Python包, 在本地 pypiserver 上没有找到时, 它会将请求转发到外部
python 公用的包可以使用 pip 管理工具方便地下载、使用、管理,那么如何将自己的工具包上传到 pip 服务器供别人下载呢,本记录相关内容。...核心的源服务器 The Python Package Index (PyPI) 为 https://pypi.org/ pip 源初始的形态,我们希望把自己的包也上传到这里。...创建自己的 python 包 先置条件 要把自己的包发布到pip上,需要满足以下几个条件: 目录下的所有文件名均为英文小写 不包含下划线,空格和特殊字符(支持中划线,但也不建议使用) 选定的包名在 pypi...= password = 用户名和密码就是上一步骤所创建的,直接明文输入。...install xxx.whl 直接安装 管理你的包 如果你的包已经上传成功,那么当你登录PyPI网站后应该能在右侧导航栏看到管理入口。
如果我们想通过 pip install packages 这种方式安装的话,需上传到 pypi 仓库 pypi仓库 pip,全称是:python install packages,它是一个通用的 Python...包管理工具,是easy_install的替代品, 主要是用于安装 PyPI 上的软件包。...PyPI,全称是:Python Package Index,它是Python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。...PyPI推荐使用pip包管理器来下载第三方库。 我们想把python包上传到pypi,需在 https://pypi.org/ 注册一个账号 ?...插件实现功能的核心模块 代码写完测试没问题后,上传到github仓库,并打个v1.0的标签 ?
pypiserver 是一个最基本的PyPI服务器实现, 可以用来上传和维护python包. 本文介绍 pypiserver 在ubuntu上的基本安装, 配置和使用. 1....将分发包上传到 ~/packages 目录下, 接下来就可以访问 pypiserver 上的Python包了. 1.3 安装 pypiserver 上的Python包 在安装和启动 pypiserver...远程上传项目包 如果希望通过python setup.py upload命令将本地项目代码上传到PyPI服务器, 可以通过以下步骤来完成. 2.1 无密码上传项目包 默认情况下, pypiserver...具体-a参数的使用可以查阅pypiserver的启动命令帮助, 这里不再展开. pypi-server -P /root/.pypipasswd 接下来, 在需要上传Python包的系统中, 需要配置...我们可以使用-P参数来修改: pypi-server -P /opt/pypiserver/packages 3.3 请求转发 当请求的Python包, 在本地 pypiserver 上没有找到时,
我在 github 托管 Python 代码,然后将包发布到 Pypi,通常的操作步骤是,更新完代码将提交到 github ,然后手动将包更新到 pypi,这样比较繁琐,就想到了使用github+travis-ci...注册 pypi 访问https://pypi.org 点击Register注册账号,记住自己的用户名密码。 创建 setup.py 文件 setup.py 文件放置于包的根目录,示例内容如下: #!...packages参数,用来申明你的包里面要包含的目录,这里使用setuptools自动决定要包含哪些包。...: true 意思是只有在发布一个新的版本时才执行打包部署 具体配置参考: Conditional-Releases-with-on 加密密码 上面的配置使用的是明文密码,这样就把pypi 账号公开了,...但是这时并没有把包部署到 pypi,还需要在 github releases 页面重新发布一个版本来触发部署。
作者: 腾讯洋葱反入侵系统 七夜、vspiders、conan 近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了request 钓鱼包,由于国内开源镜像站均同步于PyPI官方仓库,所以该问题不仅会通过官方仓库...一、事件描述 7月31号 攻击者在PyPI官方仓库上传了request 恶意包,该恶意包通过伪造著名python 库 requests 包名来进行钓鱼, 攻击者可对受感染的主机进行入侵,并实施窃取用户敏感信息及数字货币密钥...pip install requests --> pip install request 由于requests库非常流行,每日下载量巨大,导致这种由于错误输入包名而被感染的数量就会非常多。...2.远程下载恶意代码 在pip安装request包的机制中,会主动执行包中的setup.py文件,在setup.py文件中包含攻击者远程下载并执行恶意代码的逻辑,同时对C2域名进行编码混淆,解密后的C2...3.png 将远控木马脚本解密后,部分代码内容如下: 4.png 远控木马功能齐全,包括命令执行,文件上传下载,python代码执行,信息收集,文件搜索等功能。
文|腾讯洋葱反入侵系统七夜、xnianq、柯南 近日,腾讯洋葱反入侵系统检测发现 PyPI官方仓库被恶意上传了covd 钓鱼包,并通知官方仓库下架处理。...0x01 事件描述 11月16号 17:02 攻击者在PyPI官方仓库上传了covd 恶意包,该恶意包通过伪造 covid 包名进行钓鱼,攻击者可对受感染的主机进行入侵,并实施种植木马、命令控制等一系列活动...在新冠疫情在世界流行的大背景下,covid包因输错包名而被误装为covd钓鱼包的数量将会不断增加。 0x02 手法分析 1....复用covid包代码 从PyPI官方仓库下载covid包和covd包,解压发现covd钓鱼包完全复制了covid的代码。 图片 1.png 2....【安全通知】PyPI 官方仓库遭遇request恶意包投毒 【通知】腾讯洋葱反入侵系统检测到多例恶意Python库供应链投毒 同时我们秉承共建安全生态的原则,主动向外界分享了洋葱反入侵系统针对软件源投毒场景的检测方案
大家早上好 今天要为大家带来的是如何通过从PyPI的方式安装任何Python软件包作为Rez软件包 虽然rez官方也提供了工具可以把PyPI上面的python包作为rez包 但是它在把PyPI上面的包转成...rez的软件包的时候是以哈希值命名的 安装pipz 今天我们的分享的工具叫pipz, 作者是mottosso 由于pipz依赖于bleeding-rez 所以我们需要先安装bleeding-rez...我这个分支做了一些调整,所有的pip包都是统一小写 为了避免一些包名字不统一的情况 克隆下来后我们我通过下面步骤开始构建pipz cd rez-pipz rez build -i 使用方法 下面是pipz...rez是通过python-3安装的 rez env中默认带了python-3的环境所以当我不指定python版本去安装python-2的包的时候会出现类似下面的冲突 我们只需要指定对应的python版本就可以了...默认安装好了的pip包的路径在你本地用户下的packages文件夹中我们可以在pipz安装的log中看到 通过命令行rez env就能使用我们安装好了pip包了 未来我会教大家如何去配置rez, 通过配置修改这些默认的安装路径的
temp_file, $img_path)) { $is_upload = true; } else { $msg = '上传出错...; } } else { $msg = '此文件类型不允许上传!'...aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess" 这个时候可以采用一种方法来绕过,因为靶场是搭建在windows上的...,名字还是变成了1.txt image.png 这个时候我们就可以利用.来绕过限制了,因为strrchr函数会将上传的文件名后缀处理为.php....,当上传到win机器上时又会将后面的.去掉,然后后缀就又会被还原成.php,这样就可以执行了,下面演示一下 首先上传1.php文件并抓包,在burp修改文件后缀名为.php. image.png 测试链接