2016-12-28 11 views
0

Я схожу с ума от этого. У меня есть небольшой скрипт, который просто говорит мне имя профиля firefox. Как я уже сказал, это всего лишь тест, просто для теста, как он работает, пока не начнется реальная работа. Нам нужно развернуть этот скрипт в пакет deb, чтобы установить его на всех клиентов нашей компании (ubuntu mate).Пакет скрипта Python в virtualenv в пакет Debian

Должен сказать, что это первый раз, когда я работаю с python, так что, возможно, setup.py тоже неверен. Я создал virtualenv в моей папке izenpe и установлен модуль с

pip install mozprofile 

Это моя структура папок:

izenpe/ 
    - izenpemiddleware.py 
    - setup.py 
    - debian/ 
     - compat 
     - control 
     - izenpemiddleware.triggers 
     - rule 

Это мой izenpemiddleware.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() 

И это мой setup.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='[email protected]', 
     classifiers=["Programming Language :: Python :: 2.7", 
        "Development Status:: 1 - Alpha", 
        'Programming Language :: Python', 
        ], 
     scripts=["izenpemiddleware.py"] 
    ) 

я нашел эту библиотеку https://github.com/benjaminirving/python-debian-packaging-example для создания DEB пакетов из virtualenv, так что это мой конфиг:

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. 

Debian/firefoxmiddleware.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 [email protected] --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 создан правильно. Я послал этот файл через УПП на другой компьютер с установленной

dpkg -i izenpemiddleware_0.1_amd64.deb 

Если я updatedb и найти сценарий с размещением izenpemiddleware.py результат:

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

кажется, что установлен правильно, но когда я запускаю сценарий у меня есть ошибка:

[email protected]:~# 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 

Я что-то упустил? Любая помощь будет оценена по достоинству.

ответ

0

Ваш setup.py необходимо указать его install_requires.

setup(… 
    install_requires=['mozprofile'], 
    … 

 Смежные вопросы

  • Нет связанных вопросов^_^