pip, установив файлы данных в неправильное место

Источник пакета находится здесь

Я устанавливаю пакет из индекса через:

easy_install hackertray pip install hackertray 

easy_install устанавливает images/hacker-tray.png в следующую папку:

 /usr/local/lib/python2.7/dist-packages/hackertray-1.8-py2.7.egghttp://img.rupython.com/python 

Пока, pip устанавливает его на:

 /usr/localhttp://img.rupython.com/python 

Моя setup.py выглядит следующим образом:

 from setuptools import setup setup(name='hackertray', version='1.8', description='Hacker News app that sits in your System Tray', packages=['hackertray'], data_files=[('images', ['images/hacker-tray.png'])]) 

Мой файл MANIFEST :

 include images/hacker-tray.png 

One Solution collect form web for “pip, установив файлы данных в неправильное место”

Не используйте data_files с относительными путями. Фактически, вообще не используйте data_files , если только вы не убедитесь, что целевые пути являются абсолютными, которые должным образом генерируются кросс-платформенным способом с жестко закодированными значениями.

Вместо этого используйте package_data :

 setup( # (...) package_data={ "hackertray.data": [ "hacker-tray.png", ], }, ) 

где hackertray.data – это правильный пакет python (то есть каталог, который содержит файл с именем __init__.py ), а hacker-tray.png находится рядом с __init__.py .

Вот как это должно выглядеть:

 . |-- hackertray | |-- __init__.py | `-- data | |-- __init__.py | `-- hacker-tray.png `-- setup.py 

Вы можете получить полный путь к файлу изображения, используя:

 from pkg_resources import resource_filename print os.path.abspath(resource_filename('hackertray.data', 'hacker-tray.png')) 

Надеюсь, это поможет.

PS: Python <2.7, похоже, имеет ошибку в отношении упаковки файлов, перечисленных в package_data . Всегда проверяйте файл манифеста, если вы используете что-то старше Python 2.7 для упаковки. См. Здесь для получения дополнительной информации: https://groups.google.com/d/msg/python-virtualenv/v5KJ78LP9Mo/OiBqMcYVFYAJ

  • Python: установленный пакет селена не обнаружен
  • Apache + mod_wsgi - Python не загружает установленные модули
  • Easy_install и pip сломались: pkg_resources.DistributionNotFound: распространять == 0.6.36
  • Не удается найти способ установки python-dev на Mac OS X
  • PyPI медленный. Как запустить собственный сервер?
  • Веб-сайт импорта Python не работает
  • Обновление пакета без обновления зависимостей с помощью pip?
  • Ошибка при установке pip pyicu
  • Получение ошибки: невозможно найти vcvarsall.bat "при запуске" pip install numpy "на windows7 64bit
  • Как распространять предварительно скомпилированные модули расширения для Windows на pypi для нескольких версий Python?
  • Buildout vs virtualenv + pip для django?
  • Python - лучший язык программирования в мире.