Быстро выдает ошибку при установке

Я перенес приложение на Quickly, заменяя все файлы по мере необходимости. Когда я говорю quickly run, приложение работает без ошибок. Однако проблема возникает, когда я пытаюсь упаковать / установить его. Вот проблема, которая возникает, когда я пытаюсь установить:

$ sudo python ./setup.py install 
running install
running build
running build_py
running build_scripts
running build_i18n
intltool-update -p -g foobar
running build_icons
running build_help
running install_lib
running install_scripts
changing mode of /usr/local/bin/foobar to 755
running install_data
running install_egg_info
Removing /usr/local/lib/python2.7/dist-packages/foobar-0.1a.egg-info
Writing /usr/local/lib/python2.7/dist-packages/foobar-0.1a.egg-info
Traceback (most recent call last):
  File "setup.py", line 146, in <module>
    cmdclass={'install': InstallAndUpdateDataDirectory}
  File "/usr/lib/python2.7/dist-packages/DistUtilsExtra/auto.py", line 100, in setup
    distutils.core.setup(**attrs)
  File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "setup.py", line 120, in run
    target_data = '/' + os.path.relpath(self.install_data, self.root) + '/'
  File "/usr/lib/python2.7/posixpath.py", line 422, in relpath
    start_list = [x for x in abspath(start).split(sep) if x]
  File "/usr/lib/python2.7/posixpath.py", line 352, in abspath
    if not isabs(path):
  File "/usr/lib/python2.7/posixpath.py", line 61, in isabs
    return s.startswith('/')
AttributeError: 'NoneType' object has no attribute 'startswith'

Так как с программой quickly run все в порядке, я думаю, что это проблема с файлом установки: Вот часть, которую я настроил для setup.py:

DistUtilsExtra.auto.setup(
    name='foobar',
    version='0.1a',
    license='GPL-3',
    author='My name',
    author_email='myemail@foobar.com',
    description='A description',
    long_description='A looooonger description',
    url='https://launchpad.net/foobar',
    cmdclass={'install': InstallAndUpdateDataDirectory}
    )

Дополнительная информация:

$ quickly --version
Quickly 12.08.1

  Python interpreter: /usr/bin/python 2.7.5
  Python standard library: /usr/lib/python2.7

  Quickly used library: /usr/lib/python2.7/dist-packages/quickly
  Quickly data path: /usr/share/quickly
  Quickly detected template directories:
          /usr/share/quickly/templates/

Copyright 2009 Rick Spencer
Copyright 2009-2011 Didier Roche
Copyright 2010-2011 Canonical Ltd
https://launchpad.net/quickly

quickly comes with ABSOLUTELY NO WARRANTY. quickly is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 3 or later.

Я использую Ubuntu 13.10, но я также проверил это на Trusty и получил тот же результат.

Спасибо!

1
задан 21 February 2014 в 03:07

1 ответ

self.root в вашем файле setup.py - None, что вызывает исключение.

Пример:

# This is to mimic line 120 in your setup.py file
# target_data = '/' + os.path.relpath(self.install_data, self.root) + '/'
>>> os.path.relpath("/spam/eggs", None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/posixpath.py", line 422, in relpath
    start_list = [x for x in abspath(start).split(sep) if x]
  File "/usr/lib/python2.7/posixpath.py", line 352, in abspath
    if not isabs(path):
  File "/usr/lib/python2.7/posixpath.py", line 61, in isabs
    return s.startswith('/')
AttributeError: 'NoneType' object has no attribute 'startswith'

Это та же трассировка. Я не знаком с Quickly, но вам придется выяснить, почему для self.root установлено значение None, а затем исправить это.

0
ответ дан 21 February 2014 в 03:07

Другие вопросы по тегам:

Похожие вопросы: