如何像 bdist_wininst 一样使用 bdist_rpm?
Posted
技术标签:
【中文标题】如何像 bdist_wininst 一样使用 bdist_rpm?【英文标题】:How to use bdist_rpm like bdist_wininst? 【发布时间】:2015-03-06 15:57:20 【问题描述】:我正在构建一个 Tkinter 应用程序并将其分发到 centos 和 win7
为win7打包时
python setup.py bdist_wininst --install-script script_to_create_shortcut.py
在开始菜单和桌面上都可以很好地使用启动器
但对于 CentOS
python setup.py bdist_rpm --install-script script_to_create_shortcut_for_linux.py
惨败
后来我意识到 rpm 需要 sh 文件才能执行,所以我使用了安装后脚本
python setup.py bdist_rpm --post-install=script_to_create_shortcut_for_linux.py
失败,因为它也是存储在 sh 文件中的 python 代码
现在,我编写了一个运行 python -c "from module import post_install_script"
的 sh 文件
但这也失败了,因为安装后脚本找不到正确的函数名称
setup.py
setup=(..
scripts=[os.path.join('tickets','complaints.py'),
os.path.join('tickets','shortcut_linux.py'),
os.path.join('tickets','tickets.svg')],
...)
快捷方式创建者或安装后 python 脚本
file_created(os.path.join(sys.prefix,'bin','complaints.py'))
desktop=get_special_folder_path("CSIDL_COMMON_DESKTOPDIRECTORY")
startmenu=get_special_folder_path("CSIDL_COMMON_STARTMENU")
create_shortcut(os.path.join(sys.prefix,'bin','complaints.py'),
"Complaints Register",
os.path.join(desktop,'complaints.desktop'),
'','',
os.path.join(sys.prefix,'bin','tickets.svg'))
file_created(os.path.join(desktop,'complaints.desktop'))
create_shortcut(os.path.join(sys.prefix,'bin','complaints.py'),
"Complaints Register",
os.path.join(startmenu,'complaints.desktop'),
'','',
os.path.join(sys.prefix,'bin','tickets.svg'))
失败并出现错误全局名称 file_created 未定义...
为什么 rpm 不像 wininst 那样简单,它做的一切都非常简单
我花了太多时间在这...任何帮助将不胜感激 谢谢
注意:对于wininst,快捷方式文件有不同的路径,例如:它有'bin'
【问题讨论】:
file_created
应该来自哪里?哪个模块有这个功能?
我关注这个,它是安装后脚本的文档docs.python.org/2/distutils/…
您也意识到CSIDL_*
是仅限Windows 的路径,对吧? file_created
似乎也是一个仅限 Windows 的 bdist 函数。您不能只运行您的 for-Windows 脚本并期望它生成一个 rpm。您需要使用 bdist_rpm
并进行适当的配置。
哦,我的坏..所以没有在 linux 中创建快捷方式的选项吗?使用后安装脚本,我的意思是任何解决方法?我的知识很少..
我不知道bdist_rpm
提供了什么。您当然可以创建这样的快捷方式。有关于主要台式机如何做到这一点的规范。它们涉及创建一个特殊文件并将其注册到我相信的系统(但我不确定,因为我不使用它们)。
【参考方案1】:
你是否在Windows/CentOs?
中构建rpm 如果是centos system
,则需要安装rpm-build package
用于构建rpm 使用->
python setup.py bdist_rpm
首先,使用命令安装 rpm-build 包 ->
yum install rpm-build
然后,运行命令->
python setup.py bdist_rpm
【讨论】:
以上是关于如何像 bdist_wininst 一样使用 bdist_rpm?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 UICollectionViewCompositionalLayout 创建像图像一样的集合视图
如何使用java api像jdbc一样直接发送hbase shell命令?
如何像聊天室一样使用 JQuery 循环 mysql 查询? [关闭]
如何像 uitableviewcell 一样重用/回收自定义元素?
如何使 Ignite 像使用 TcpDiscoveryMulticastIpFinder 一样使用 TcpDiscoveryVmIpFinder 进行非阻塞行为?