Запустить setup py linux

setup.py

Сценарий установки является центром всей деятельности по созданию, распространению и установке модулей с использованием Distutils. Его цель — правильная установка программного обеспечения.

Если все, что вам нужно, это распространить модуль с именем foo, содержащийся в файле foo.py, то ваш скрипт установки может быть таким простым:

 from distutils.core import setup setup(name='foo', version='1.0', py_modules=['foo'], ) 

Чтобы создать исходный дистрибутив для этого модуля, вы должны создать скрипт установки setup.py, содержащий приведенный выше код, и запустить эту команду из терминала:

sdist создаст архивный файл (например, tarball в Unix, ZIP-файл в Windows), содержащий ваш скрипт установки setup.py и ваш модуль foo.py. Архивный файл будет называться foo-1.0.tar.gz (или .zip) и будет распакован в каталог foo-1.0.

Если конечный пользователь желает установить ваш модуль foo, все, что ему нужно сделать, это загрузить foo-1.0.tar.gz (или .zip), распаковать его и — из каталога foo-1.0 — запустить

Добавление сценариев командной строки в ваш пакет Python

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

Если вы имели greetings пакета , который имел в командной строке скрипт hello_world.py .

 greetings/ greetings/ __init__.py hello_world.py 

Вы можете запустить этот скрипт, запустив:

 python greetings/greetings/hello_world.py 

Однако, если вы хотите запустить его так:

Вы можете достичь этого путем добавления scripts к вашей setup() в setup.py , как это:

 from setuptools import setup setup( name='greetings', scripts=['hello_world.py'] ) 

При установке пакета приветствия теперь hello_world.py будет добавлен к вашему пути.

Читайте также:  Как изменить размер изображения linux

Другой возможностью было бы добавить точку входа:

Таким образом, вы просто должны запустить его так:

Использование метаданных контроля версий в setup.py

setuptools_scm является официально благословенным пакетом , который можно использовать Git или Mercurial метаданные , чтобы определить номер версии пакета, и найти пакеты Python и данные пакета , чтобы включить в него.

 from setuptools import setup, find_packages setup( setup_requires=['setuptools_scm'], use_scm_version=True, packages=find_packages(), include_package_data=True, ) 

Этот пример использует обе функции; только использовать метаданные SCM для версии, замените вызов find_packages() с ручным списком пакетов, или использовать только пакет искатель, удалить use_scm_version=True .

Добавление параметров установки

Как видно из предыдущих примеров, основное использование этого скрипта:

Но есть еще больше возможностей, таких как установка пакета и возможность изменить код и протестировать его без необходимости переустановки. Это делается с помощью:

Если вы хотите , чтобы выполнять определенные действия , как составление документации сфинкса или строительство FORtran кода, вы можете создать свой собственный вариант , как это:

 cmdclasses = dict() class BuildSphinx(Command): """Build Sphinx documentation.""" description = 'Build Sphinx documentation' user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): import sphinx sphinx.build_main(['setup.py', '-b', 'html', './doc', './doc/_build/html']) sphinx.build_main(['setup.py', '-b', 'man', './doc', './doc/_build/man']) cmdclasses['build_sphinx'] = BuildSphinx setup( . cmdclass=cmdclasses, ) 

initialize_options и finalize_options будут выполняться до и после run функции , как их имена предполагает его.

После этого вы сможете назвать свой вариант:

 python setup.py build_sphinx 

Источник

Как вручную установить пакет в Python

Большинство пакетов в Python сейчас спроектированы так, чтобы быть совместимыми с менеджером пакетов pip. Но что если у вас есть пакеты, несовместимые с pip, и вам нужно установить пакет вручную? Сегодня мы разберем, как это делается.

Примечание редакции Pythonist: об установке пакетов через менеджер читайте в статье «Установка пакетов Python при помощи PIP».

  1. Загрузите пакет и извлеките его в локальный каталог.
  2. Если пакет включает в себя собственный набор инструкций по установке, следуйте им. В противном случае наиболее распространенным методом ручной установки пакета является реализация setup.py .
Читайте также:  Linux дисковый ввод вывод

Установка пакетов Python с помощью setup.py

Чтобы установить пакет, содержащий файл setup.py , откройте командную строку или окно терминала и сделайте следующее:

  1. С помощью команды cd переместитесь в каталог, где находится файл setup.py
  2. Введите следующую команду: python setup.py install

Среда сборки setup.py

Пакеты, устанавливаемые при помощи setup.py, имеют требования относительно среды сборки, которые разработчики должны учитывать. Но некоторые требования опциональны.

Примеры

С помощью следующей команды проверьте, что у вас установлена ​​актуальная версия setuptools:

python -m pip install —upgrade setuptools

Включите именованные аргументы install_requires в setup.py . Отметим, что install_requires — это ключевое слово setuptools , используемое для указания минимальных требований к пакету. Например, это может выглядеть следующим образом:

install_requires=[»], # опциональное ключевое слово

Полные требования к сборке пакета для установки на основе setup.py изложены PyPA (Python Packaging Authority) в «Sample Project».

Sample Project

Sample Project — это пакет-шаблон с файлом setup.py для ручной установки пакета. Файл снабжен аннотациями, касающимися настройки скрипта и среды сборки пакета в целом. Sample Project можно найти на GitHub.

Основан Sample project на пакете setuptools. setup.py — это скрипт сборки для пакетов, созданных с помощью setuptools .

Пример setup.py (без аннотаций):

import setuptools with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup( name , # Replace with your username version="1.0.0", author , author_email , description , long_description=long_description, long_description_content_type="text/markdown", url , packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], python_requires='>=3.6', )

Заключение

Итак, сегодня мы разобрали, как вручную установить пакеты в Python. А именно — как это сделать с помощью setup.py.

Надеемся, данная статья была вам полезна! Успехов в написании кода!

Читайте также:  Linux read write no execute

Источник

Как запускать файл Python из любого места в Ubuntu?

Привет. Читаю книгу A Byte of Python. Там на 32й странице http://wombat.org.ua/AByteOfPython/AByteofPythonRussian-2.01.pdf создается своя команда helloworld и с помощью нее можно вызывать файл helloworld.py из любого места. К примеру просто py/helloworld.py у меня получается запускать, а вот как сделать свою команду не пойму. Знаю есть alies, но в книге как-то иначе делается. Кто подскажет как повторить пример? И чем отличается от alies?

3 ответа 3

Как запускать файл Python из любого места в Ubuntu?

Также как и любую другую программу:

    файл должен быть в одной из директорий, указанной в $PATH

$ chmod +x путь/к/helloworld.py 

Если ~/bin директория находится в $PATH , то можно symlink создать:

$ ln -s /полный/путь/к/helloworld.py ~/bin/helloworld 

После этого можно запускать helloworld из любой директории:

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

from setuptools import setup setup( name='helloworld', version='0.1', py_modules=['helloworld'], entry_points=''' [console_scripts] helloworld=helloworld:main ''', ) 

Код для запуска следует в main() функцию поместить.

Чтобы инсталлировать скрипт (из директории с setup.py ):

Если вы не используете virtualenv, тогда можно добавить —user опцию, чтобы локально для текущего пользователя поставить:

$ python -m pip install . --user 

нужно добавить ~/.local/bin в путь ( $PATH переменная окружения) в этом случае.

После этого можно запускать helloworld из любой директории:

А в чем отличие этого подхода от alies?

Проще сказать что общее: alias (псевдоним) также как и другие подходы позволяет, набирая строку, например: helloworld , запустить желаемую команду. alias — это функциональность оболочки (такой как bash ). Как symlink так и явная установка с помощью setup.py , приведённые в ответе, не требуют оболочку, чтобы потом запускать команду, например, можно из Питона запустить rc = subprocess.call(‘helloworld’) .

Источник

Оцените статью
Adblock
detector