打包linux的python应用程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了打包linux的python应用程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3110字,纯文字阅读大概需要5分钟。
内容图文
![打包linux的python应用程序](/upload/InfoBanner/zyjiaocheng/965/3512028cf81a48c4bee3b035d2847002.jpg)
我使用python和PyQt5创建了一个GUI应用程序.我想打包这个应用程序,但似乎没有一个直接的方式来做到这一点.而且我找到的答案是打包python模块而不是应用程序.我已经阅读了各种文章和官方文档,但似乎仍然没有对此做出正确的答案,尽管我可以通过几种解决方法实现相同的目标,我只是想知道标准方法是什么.
这是我的目录结构:
Moodly/
Moodly/
__init__.py
controller.py
logic.py
models.py
view.py
resoure.py
style.py
sounds/
notify.wav
message.wav
setup.py
MANIFEST.in
setup.cfg
run.py
moodly.png
Moodly.desktop
我想要实现什么:给用户一个Moodly的tar文件.用户提取它,运行命令
python setup.py install
在终端中,安装程序将所有文件放在适当的位置,并在usr / local / share / applications中创建一个Moodly.desktop文件,单击哪个用户可以运行该应用程序.
我实现这个目标的方式:
setup.py
from setuptools import setup
setup(
name="Moodly",
version="1.0",
author="Akshay Agarwal",
author_email="agarwal.akshay.akshay8@gmail.com",
packages=["Moodly"],
include_package_data=True ,
url="http://github.com/AkshayAgarwal007/Moodly",
entry_points = {
'gui_scripts': [
'moodly = Moodly.controller:main',
],
},
# license="LICENSE.txt",
description="Student Intimation system",
# long_description=open("README.txt").read(),
# Dependent packages (distributions)
)
MANIFEST.in
include Moodly/sounds/notify.wav
include Moodly/sounds/message.wav
现在没有setup.cfg我运行命令:
python setup.py install
这成功地将Moodly安装到/usr/lib/python-3.4/site-packages
与声音目录一起.现在,当我心情输入时(在setup.py中的入口点中指定),终端从终端开始,我的GUI应用程序成功启动.
现在我只需要设置在usr / local / share / applications中创建Moodly.desktop以及moodly.png,我试图通过这个来实现:
setup.cfg
[install]
install_data=/usr/local/share/applications
将其添加到setup.py
data_files = [("Moodly", ["moodly.png","Moodly.desktop",])],
但这似乎在某种程度上复制python-3.4 / site-packages / Moodly中的文件而不是指定的目的地,但它曾经与distutils很好地协同工作
This guy also seems to have faced the same issue
我用过的其他一些链接:
所以我试图这样做的方式,有多少是正确的,以及做标准的方法是什么.我怎么可能将Moodly.desktop放在正确的位置或者什么是更好的替代方式来完成整个过程.
而且使用Pyinstaller会更好. Pyinstaller会将应用程序与PyQt5,请求和beautifulsoup4(我使用的外部模块)打包,这是我不想要的.我想使用setuptools提供的install_requires选项,并且没有必要让用户下载他们可能拥有的模块.
解决方法:
不应使用Distutils安装.desktop文件. Distutils只关心安装Python包.
要安装附带于分发级别打包的.desktop文件,图标和其他文件,您应该查看构建自动化系统,例如CMake.
这个过程的第一步是让CMake构建一个Python项目.你应该看一下如何做到这一点:https://bloerg.net/2012/11/10/cmake-and-distutils.html
除此之外,安装.desktop文件很容易.假设您已经编写了一个.desktop文件并将其放在某处,安装它就是这样做的:
install(PROGRAMS com.akshay.moodly.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
在您的CMakeLists.txt文件中.
请注意,您将.desktop文件安装到${XDG_APPS_INSTALL_DIR}(这是一个CMake变量),而不是像/usr/local/share / applications之类的硬编码路径.用户(以及几乎所有自动发行版包构建器)将始终将您的包安装到临时路径,然后将文件复制到其包中.永远不要假设您的应用程序将位于/usr/bin或/usr/local/bin或其他任何位置.用户可以将东西装入/ opt / Moodly甚至$HOME / Moodly.
内容总结
以上是互联网集市为您收集整理的打包linux的python应用程序全部内容,希望文章能够帮你解决打包linux的python应用程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。