Код: Выделить всё
[tool.setuptools]
packages = [
"linton",
"linton.subcommand",
]
[tool.setuptools.package-data]
linton = ["init-pages/**"]
Код: Выделить всё
linton
├── argparse_util.py
├── init-pages
│ ├── Author.in.txt
│ ├── body.in.md
│ ├── breadcrumb.in.py
│ ├── email.in.py
│ ├── Email.in.txt
│ ├── index.nancy.html
│ ├── lastmodified.in.py
│ ├── markdown-to-html.in.sh
│ ├── menudirectory.in.py
│ ├── pageinsite.in.py
│ ├── path-to-root.in.py
│ ├── Sample page
│ │ ├── body.in.md
│ │ └── index.nancy.html
│ ├── style.css
│ ├── template.in.html
│ └── Title.in.txt
├── __init__.py
├── __main__.py
├── subcommand
│ ├── init.py
│ ├── publish.py
│ └── serve.py
└── warnings_util.py
Также обратите внимание, что страницы инициализации содержат некоторые файлы .py файлы.
Упаковка этого проекта работает нормально: исходные файлы и файлы ресурсов включены, как и ожидалось, с помощью pip.
Сюрприз Меня беспокоит то, что когда я pip install этого проекта, pip компилирует файлы .py в каталоге init-pages, хотя этот каталог не включен в пакеты и предназначен только для помечены как данные пакета.
Я не могу найти никакой документации о том, как pip решает, какие файлы компилировать побайтово при установке. Я могу отключить его глобально, но, конечно, я не хочу этого делать, и моим пользователям это не поможет.
Я также мог бы обойти эту проблему, создав linton init пропустить созданный каталог __pycache__ при копировании файлов ресурсов в проект пользователя. Но кажется неправильным, что они вообще существуют, и мне хотелось бы предотвратить это.
Подробнее здесь: https://stackoverflow.com/questions/791 ... led-by-pip
Мобильная версия