Можно ли сделать setuptool, чтобы установить двоичный файл как выполнимый при установке - PullRequest
1 голос
/ 24 апреля 2019

У меня есть три двоичных исполняемых файла, которые скомпилированы для OSX, Windows и Linux.Который будет вызываться через pythonscript, моя проблема в том, что пакет построен на машине с Windows, которая удаляет атрибуты файла из двоичных файлов для OSX и Linux.То, что я ищу, - это способ заставить setuptools установить атрибут исполняемого файла для файлов, когда он копирует его в пакет python.

Итак, сейчас у меня есть для установки пакета файл MANIFEST.in, содержащий:

recursive-include foo/bar/lib *%

, которая включает три папки Linux, OSX и Windows

Затем setup.py:

from setuptools import setup, find_packages

setup(name='foobar',
      version='0.1',
      packages=find_packages(),
      include_package_data=True,
      install_requires=['foo','bar'],
      entry_points='''
              [console_scripts]
              foobar=foobar.cli:cli
      ''',
      )

Я также использовал

package_data={
      'lib': ['lib/*'],
   },
   include_package_data=True,

в setup.py раньше, но я перешел к манифесту, так как хочу, чтобы он работал с bdist и sdist.

Итак, мне нужно убедиться, что флаг -x установлен для двоичных файлов, которые устанавливаются при вызове python install . внутри папки.Поскольку это не распространяется в виде пакета pip.

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Добавление os.chmod(path_to_executable, <executable attribute> в setup.py сработало для меня, по крайней мере.

1 голос
/ 24 апреля 2019

Вы не можете, ни за что. pip - довольно упрощенный менеджер пакетов, предназначенный для установки Python библиотек и сопровождающих Python скриптов.

Люди пробуют трюки, но они не работают .

Вам нужен настоящий менеджер пакетов.

...