Mag*_*nus 9 python packaging gnome setuptools distutils2
目前我正在使用自动工具来构建/安装和打包我的项目,但我真的想转向感觉更"pythonic"的东西.
我的项目包括两个脚本,一个模块,两个glade GUI描述和两个.desktop文件.它目前是一个纯粹的python项目,虽然很快就会改变.
看看setuptools,我可以很容易地看到如何处理除.desktop文件之外的所有内容; 他们必须最终进入特定目录,以便Gnome可以找到它们.
使用distuils/setuptools是一个好主意吗?
我设法让它起作用,但对我来说感觉更像是一种解决方法。
不知道处理这个问题的首选方法是什么...
我使用了以下setup.py
文件(完整版在这里):
from setuptools import setup
setup(
# ...
data_files=[
('share/icons/hicolor/scalable/apps', ['data/mypackage.svg']),
('share/applications', ['data/mypackage.desktop'])
],
entry_points={
'console_scripts': ['startit=mypackage.cli:run']
}
)
Run Code Online (Sandbox Code Playgroud)
启动脚本槽entry_points
有效。但是data_files
放置在egg文件中的位置而不是指定的文件夹中,因此桌面外壳无法访问它们。
为了解决这个问题,我使用了以下setup.cfg
文件:
[install]
single-version-externally-managed=1
record=install.txt
Run Code Online (Sandbox Code Playgroud)
这有效。两个数据文件都在正确的位置创建,并且.desktop
Gnome 可以识别该文件。