将Python脚本和虚拟环境打包为Debian包

2024-10-02 00:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我快疯了。我有一个小脚本,它只告诉我firefox的配置文件名。正如我所说,这只是一个测试,只是为了测试它如何工作,直到开始真正的工作。我们需要的是将这个脚本部署到一个deb包中,以便在我们公司的所有客户机(ubuntumate)中安装它们。在

我不得不说这是我第一次使用python,所以也许设置.py也不正确。我在izenpe文件夹中创建了一个virtualenv,并用

pip install mozprofile

这是我的文件夹结构:

^{pr2}$

这是我的izenpimiddleware.py在

import sys
import mozprofile

def main(args=None):
    "The main routine."""
    if args is None:
        args = sys.argv[1:]
    pro = mozprofile.Profile()

    print "Perfila da:\n"
    print "*************"
    print pro.profile
    print "*************"

if __name__ == "__main__":
    main()

这是我的设置.py(可以吗?)公司名称:

#!/usr/bin/env python

from setuptools import setup
from setuptools import find_packages

Description = """/
izenpe
"""

# setup parameters
setup(name='izenpemiddleware',
      version='0.1',
      description='Mirefox-en izenpe middleware instalatu',
      long_description=Description,
      packages=find_packages(),
      author_email='iibarguren@pasaia.net',
      classifiers=["Programming Language :: Python :: 2.7",
                   "Development Status:: 1 - Alpha",
                   'Programming Language :: Python',
                   ],
      scripts=["izenpemiddleware.py"]
      )

我发现这个库https://github.com/benjaminirving/python-debian-packaging-example从virtualenv生成deb包,所以这是我的配置:

debian/控制:

Source: izenpe
Section: python
Priority: extra
Build-Depends: debhelper (>= 9), python, dh-virtualenv, python-all-dev
Standards-Version: 3.9.5

Package: izenpemiddleware
Architecture: any
Pre-Depends: dpkg (>= 1.16.1), python2.7-minimal, ${misc:Pre-Depends}
Depends: ${python:Depends}, ${misc:Depends}, python-pyside, python-numpy
Description: Izenpe ziurtagiriak Firefox-entzat instalatu.

德比安/Firefox中间件.triggers在

# Register interest in Python interpreter changes (Python 2 for now); and
# don't make the Python package dependent on the virtualenv package
# processing (noawait)
interest-noawait /usr/bin/python2.7

# Also provide a symbolic trigger for all dh-virtualenv packages
interest dh-virtualenv-interpreter-update

debian/规则:

#!/usr/bin/make -f
%:
    dh $@ --with python-virtualenv

override_dh_virtualenv:
    dh_virtualenv --setuptools \
    --extra-pip-arg --ignore-installed \
    --extra-pip-arg --no-dependencies \
    --use-system-packag

之后,我用以下命令生成了一个deb包:

sudo dpkg-buildpackage -us -uc -b 

Debian包创建正确。我通过scp把这个文件发送到另一台安装了

dpkg -i izenpemiddleware_0.1_amd64.deb

如果我updatedb并使用locate izenpemiddleware.py找到脚本,结果是:

/usr/share/python/izenpemiddleware/bin/izenpemiddleware.py

似乎安装正确,但启动脚本时出现错误:

root@portatil-001:~# python /usr/share/python/izenpemiddleware/bin/izenpemiddleware.py
Traceback (most recent call last):
  File "/usr/share/python/izenpemiddleware/bin/izenpemiddleware.py", line 2, in <module>
    import mozprofile
ImportError: No module named mozprofile

我错过什么了吗?任何帮助都将不胜感激。在


Tags: pyimport脚本binvirtualenvmainpackagesusr

热门问题