Несколько дней назад я создал небольшой проект под названием pyblime , и сейчас я пытался выяснить, как создать правильный файл setup.py, который позволил бы мне загружать «нужные вещи» в PyPi. так что пользователи смогут наслаждаться проектом, используя pip
, не делая ничего «слишком сложного», например, вызывая необычные пользовательские сценарии dev, сейчас структура дерева проекта выглядит следующим образом:
│ .gitignore
│ configure.py
│ MANIFEST.in
│ README.md
│ requirements.txt
│ setup.py
│
├───data
│ ├───commands
│ │ comment.py
│ │ fold.py
│ │
│ ├───screenshots
│ │ test_simple.png
│ │ test_themes.gif
│ │
│ ├───st_build_3149
│ │ ├───syntax
│ │ └───themes
│ └───testfiles
├───docs
│ build.md
│ contributing.md
│ guidelines.md
│ usage.md
│
├───examples
│ demo_00.py
│ tutorials.py
│ tutorial_00.py
│ tutorial_01.py
│ tutorial_02.py
│ tutorial_03.py
│ tutorial_04.py
│ tutorial_05.py
│ tutorial_06.py
│
├───pyblime
│ utils.py
│ view.py
│ __init__.py
│
├───sublime_text
│ sublime.py
│ sublime_plugin.py
│
└───tests
run_all.py
test_scopes.py
test_view.py
x.py
Вместо 1 вопроса у меня есть несколько простых сомнений:
- Каким был бы «стандартный» способ указать setup.py копировать файлы
sublime_text/sublime.py
и sublime_text/sublime_plugin.py
в корневой каталог Lib/site-packages
?
- Как вы сказали бы setup.py скопировать всю папку
pyblime
adhoc в Lib/site-packages
?
- Наконец, правильно ли загружать тесты / примеры / тесты / документы / данные в PyPi? Это контент, который не будет необходим для использования самой SDK / библиотеки ... Если это не так, куда бы вы включили этот тип данных ... Я знаю, что существует концепция папок sdist & dist, и я уже прочитал немного об этом здесь но вопрос все еще остается:)
Прямо сейчас мой setup.py выглядит примерно так:
from pathlib import Path
from setuptools import setup
root_path = Path(__file__).parent
requirements = (root_path / "requirements.txt").read_text()
requirements = [
v for v in requirements.split("\n")
if v.strip() and not v.strip().startswith("#")
]
readme = (root_path / "README.md").read_text()
setup(
author="mcve",
author_email="mcve",
classifiers=["mcve"],
description="mcve",
install_requires=requirements,
keywords=["mcve"],
long_description=(root_path / "README.md").read_text(),
name="mcve",
# package_data = {}, <---- How do i use this?
# packages = [], <---- Do I need to use this?
url="mcve",
version="0.0.1",
)
Ps. И да ... Я уже читал официальные документы об упаковке ... но если бы я понял эти документы, я бы не стал спрашивать об этом на SO; D. Заранее спасибо!