我想编写一个函数来执行shell命令并将其输出作为字符串返回,无论是错误还是成功消息.我只想获得与命令行相同的结果.
什么是代码示例会做这样的事情?
例如:
def run_command(cmd):
# ??????
print run_command('mysqladmin create test -uroot -pmysqladmin12')
# Should output something like:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Run Code Online (Sandbox Code Playgroud) 我如何实际创建使用 git repo 标签进行版本控制的 python 包的发布/发行版,使用setuptools和pbr?
关于所需的基本设置和配置有很多信息:
setuptools和生成的版本信息pbr但是关于如何实际创建发行版的简单信息在哪里?
即我正在寻找任何命令找到带有版本信息的 git 标记并将其拉入配置信息中,因此可以分发具有该新版本信息的源,并且可以使用类似的方法从脚本中发现版本信息在这个答案中描述。
我正在开发一个项目,该项目将仅通过 git repo 分发给其他开发人员,而不是通过PyPi。该项目将使用 以可执行文件的形式发布给用户pyinstaller,因此此包分发仅用于几个关键目的:
pbr从 Git 存储库标签生成版本,因此这些标签可以成为我们版本控制的真实来源pbr其他自动生成从SVN家常的物品,如作者,manifest.in文件,发行票据等。由于setuptools文档专注于使用PyPi和设置完全可分发和可重用的包pip,并且pbr文档只真正告诉您如何修改setuptools配置以使用pbr,因此我找不到有关如何运行分发/发布过程的信息。
我确定它存在于文档中的某个地方,但经过几次错误的启动后,我在这里问。我看到的每一个地方都暗示每个人要么知道如何做到这一点,要么作为过程的一部分神奇地发生。
我只是错过了显而易见的事情吗?
更新:
根据 sinoroc 的回答,看来我需要研究开发模式安装。即任何开发项目的人都会从git克隆,然后使用setuptools开发安装模式安装。
这不是原始问题的直接一部分,而是暗示的,我相信处于相同情况的人会感兴趣(我无法轻易找到信息)。
在他关于更新某些元数据的回答中提供了更多信息,并通过此setuptools文档链接在“开发模式”下工作
为了简化 python 打包,我试图迁移到使用 pbr。
尽管如此,我还是无法弄清楚如何将包的版本公开到__version__变量中。
这非常重要,因为我确实有很多用户依赖版本变量的存在。
人们应该能够做到:
import somemodule
print(somemodule.__version__)
Run Code Online (Sandbox Code Playgroud)