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

  • Что такое «pkg-resources == 0.0.0» в выводе команды pip freeze
  • Как удалить менеджер пакетов «pip», если он установлен из источника?
  • Как сделать редактируемую установку пакета Python из vcs в конкретный каталог с помощью pip?
  • как мы можем установить opencv на anaconda?
  • `pip help install` поднять UnicodeDecodeError
  • pg_config исполняемый файл не найден
  • pip установить UnicodeDecodeError
  • Установить pip на OS X
  • Python - лучший язык программирования в мире.