首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >组织Python应用程序

组织Python应用程序
EN

Stack Overflow用户
提问于 2012-06-30 23:27:03
回答 2查看 240关注 0票数 1

我有一个Python应用程序,我有一个关于打包的问题,这个问题实际上不是distutils的问题,而是一个如何组织和设置应用程序以便从命令行轻松使用的问题。

假设应用程序包含一个包,并且暂时假设我不一定想让它成为distutils包(尽管我可能会被劝阻)。

该程序本身作为SNMP子代理,由Net-SNMP使用pass_persist运行。这对这个问题并不是特别重要,它只是意味着整个程序都是可执行的,并且在stdout上读取stdin和响应。

进一步假设代理是以或多或少规范的Python方式构建的

代码语言:javascript
运行
AI代码解释
复制
  agent
      __init__.py
      main.py
      <other modules at the same level>

main.py是一个简单的程序,类似于

代码语言:javascript
运行
AI代码解释
复制
#!/usr/bin/env python
import sys
def main(argv):
    <initialize the environment, input output, logging and so on>
    while <not done>:
         <process an input>
    <clean up and terminate>

if __name__ == '__main__':
    main(sys.argv)

似乎只有几种方法可以将其组织起来运行:

将包放在site- package中的某个位置,并在路径中放置一个顶级程序,如下所示

代码语言:javascript
运行
AI代码解释
复制
#!/usr/bin/env python
from agent import main
main(sys.argv)

将包目录放在某个位置并使用以下命令运行它

代码语言:javascript
运行
AI代码解释
复制
/path/to/directory/agent/main.py

( bumpo版本是将代理目录放在某个路径中,这样您就可以运行main.py)

或者是第三种,更有Pythonic风格和更酷的方法,它允许我安装代码,并将一些我不知道的东西直接放到路径中。

谷歌搜索并没有多大帮助,我怀疑这是那些“太愚蠢而无法回答”的问题之一。不幸的是,我太傻了,不知道这一点。

EN

回答 2

Stack Overflow用户

发布于 2012-07-01 01:06:10

“将包目录放在某个地方”是最重要的。剩下的工作就是通过main.py脚本在python解释器上编写一个使用exec的shell脚本。

代码语言:javascript
运行
AI代码解释
复制
#!/bin/sh
exec python /usr/share/myapp/main.py "$@"
票数 1
EN

Stack Overflow用户

发布于 2012-07-01 02:26:12

您列出的第一个选项是通常的"Pythonic and cool“方法。您还可以使用Distribute对其进行管理,以便更方便地进行开发。完成后打包或安装。分布式系统可用于管理您的开发,也可用作打包工具。它还会为您生成启动器脚本。您可以在setup.py中定义entry points,它将为您创建顶级启动器脚本。

在开发时,您可以设置Development Mode来设置Python环境,以便在您的工作区中查找您的包。因此,任何更改在下次运行时都会立即可见。然后,在开发它之后,您可以将其打包为一个鸡蛋,甚至可以从相同的源代码构建一个RPM或Windows安装程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11278449

复制
相关文章
使用Autofac IOC组织多项目应用程序
较复杂的应用程序都是由多个项目组织成的,项目可以划分成程序集(Assemblies)和宿主(Hosts),也就是应用程序的入口。 Assemblies 通常是常见的类库项目,包括可以重用的功能和方便测试,通常包括下面的组件: Views, Controllers 和 Models 服务 持久类 和 repositories Decorators Reusable user controls 规则库 业务逻辑 这些项目通常不应该直接依赖于下面的组件: IoC 容器程序集; 日志记录框架 ;
张善友
2018/01/19
8510
python启动应用程序和终止应用程序
每天上班,工作需要,电脑上需要每天开机启动一些软件,下班时候,需要关掉一些软件。一个一个打开和关闭貌似是很繁琐的,于是乎,这个脚本产生了。
py3study
2020/01/07
2.4K0
「翻译」如何组织大型 Python 项目
本文来自一位 Python 开发者对一个庞大的 Python 项目的代码组织结构的总结。
Ryoma
2023/08/09
4310
「翻译」如何组织大型 Python 项目
python android开发_python编制应用程序
1.下载和安装 Scripting Layer for Android (SL4A)
全栈程序员站长
2022/09/22
8040
python android开发_python编制应用程序
Docker Python应用程序示例
1.创建一个目录 mkdir -p ~/Downloads/code/docker/docker-python-app 1.进入目录 cd ~/Downloads/code/docker/docker-python-app/ 1.创建一个名称为:Dockerfile的Dockerfile文件 FROM python COPY . /Users/michael/Downloads/code/docker/ CMD ["python", "/Users/michael/Downloads/code/docker
黑洞代码
2022/01/24
6600
MOTOROLA MVME162-210 用于运行组织的应用程序和工作负载
混合云顾名思义,是公共云和私有云环境的结合。具体而言,理想情况下,混合云将组织的私有云服务和公共云连接到一个灵活的基础架构中,用于运行组织的应用程序和工作负载。
用户10384942
2023/04/13
2620
MOTOROLA MVME162-210 用于运行组织的应用程序和工作负载
《组织行为学》---组织与管理
     任何社会都是一个组织的社会,尤其是现代社会更是如此。人们的生活不是彼此互不相干的,而是充满了人与人之间各种形式的交往互动,这就是我们通常所说的“社会生活”。
用户3003813
2019/03/04
2.7K0
《组织行为学》---组织与管理
APT组织分析:网络间谍组织Bahamut
根据2021年2月中旬的一项发现,Anomali威胁研究公司(Anomali Threat Research)评估称,至少自2020年6月4日以来,APT网络间谍组织Bahamut一直在对多个目标进行恶意攻击活动。在研究恶意文件时,来自Anomali的研究人员分析了一个.docx文件(List1.docx),该文件包含一个与另一个.docx文件共享的捆绑组件,该文件可以通过模板注入来与lobertica.info域名进行通信,这个域名之前归属于Bahamut。接下来,我们会对这个文件以及后续的感染链进行深入分析。
FB客服
2021/04/29
1.3K0
用Python抓取在Github上的组织名称
我想在我的个人网站上展现我在Github上提交代码的组织名称,并且不用我手动更新提交记录的变化。Github提供了读取数据的API,但是,不能体现出我想一些开发组织提交的代码。这就是我之所以要爬取那些信息的原因。本文的代码仓库:https://github.com/DahlitzFlorian
老齐
2020/05/15
1.7K0
用Python抓取在Github上的组织名称
用python打包exe应用程序-PyInstaller
PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序。 PyInstaller 制作出来的执行文件并不是跨平台的,如果需要为不同平台打包,就要在相应平台上运行PyInstaller进行打包。
全栈程序员站长
2022/07/22
5900
用python打包exe应用程序-PyInstaller
开始在Kubernetes运行Python应用程序
你知道你想要在Kubernetes中运行应用程序,但不知道从哪里开始。或者你刚刚开始,但不知道自己不知道什么。在本博客中,你将了解如何封装应用程序,并使其在Kubernetes运行。
CNCF
2019/12/04
3.5K0
开始在Kubernetes运行Python应用程序
【说站】python 如何开发应用程序
编写python程序,可以在编辑器中编写代码,推荐使用pycharm;写代码时,要注意python语法的缩进格式,函数、变量的命名规则,导入第三方库的标准方式,最后python的文件要以.py结尾。
很酷的站长
2022/11/23
6780
【说站】python 如何开发应用程序
python教程:用简单的Python编写Web应用程序
python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分享一下。
全栈程序员站长
2022/09/08
2.3K0
python教程:用简单的Python编写Web应用程序
【说站】python PyQt组织菜单和工具栏
1、为增加GUI应用程序的清晰度,改善用户体验,可以使用分隔符来组织菜单选项和工具栏按钮。
很酷的站长
2022/11/24
3060
系列直播预告|从未来组织到组织未来
👆👆扫描图片二维码或点击阅读原文报名直播
ThoughtWorks
2022/06/29
4960
系列直播预告|从未来组织到组织未来
高级Python技术:如何在Python应用程序中实现缓存
简而言之,缓存的概念主要是利用编程技术将数据存储在临时位置,而不是每次都从源检索数据。
HuangWeiAI
2021/02/05
1.7K0
Python 应用程序设置背景图片
matinal
2023/10/13
1390
Python 应用程序设置背景图片
【python入门项目】使用 Tkinter 的 Python 日历 GUI 应用程序
在 Python 中,我们可以使用 Tkinter 制作 GUI。如果你非常有想象力和创造力,你可以用 Tkinter 做出很多有趣的东西。在这里,我们将使用 Tkinter 制作一个 Python 日历 GUI 应用程序。在这个应用程序中,用户必须输入你想要查看日历的年份,然后日历才会出现。
程序员小新
2022/01/08
2.3K0
[答疑]发现研究的组织是自己所在组织,有点慌
我们做业务建模研究的组织可以是自己所在的组织吗?例如,如果我想做一个组件来来提高研发效能,那我研究的组织是我们部门的研发线可以吗? 因为最近做一个设备管理的建模,发现研究的组织是自己所在组织,有点慌。
用户6288414
2019/09/23
4310
[答疑]发现研究的组织是自己所在组织,有点慌
点击加载更多

相似问题

python:组织应用程序的对象模型

37

Python应用程序按标签组织思想

12

python代码组织

23

python模块组织

49

ModuleNotFoundError - Python组织

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文