Я создаю python колесо для выполнения скрипта. Колесо, которое я сейчас создаю, содержит только мой код, но не содержит всю библиотеку, необходимую для выполнения скрипта. Чтобы эти библиотеки были доступны в env, я запускаю скрипт, мне нужно установить колесо с
pipenv install -d
Это то, что я я делаю сейчас:
У меня есть файл setup.py
import json
import os
from setuptools import setup
def pipenv_requires():
with open('Pipfile.lock') as fd:
return [name + data['version'] for name, data in json.load(fd)['default'].items()]
setup(
version=os.getenv('VERSION'),
install_requires=pipenv_requires(),
)
И я запускаю эту команду для его выполнения:
pipenv run python setup .py bdist_wheel
У меня также есть свой собственный код, Pipfile и Pipfile.lock в той же папке, а также файл setup.cfg и др. c ...
Мы можем заметить, что файл METADATA внутри встроенного колеса выглядит следующим образом:
Metadata-Version: 2.1
Name: project
Version: 1
Summary: project
Home-page: https://github.com/project
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Requires-Python: >=3.6
Requires-Dist: boto3 (==1.10.46)
Requires-Dist: botocore (==1.13.46)
Requires-Dist: docutils (==0.15.2)
Requires-Dist: jmespath (==0.9.4)
Requires-Dist: py4j (==0.10.7)
Requires-Dist: pyspark (==2.4.3)
Requires-Dist: python-dateutil (==2.8.1)
Requires-Dist: s3transfer (==0.2.1)
Requires-Dist: six (==1.13.0)
Requires-Dist: urllib3 (==1.25.7)
Затем я вижу, как pipenv устанавливает все внешние зависимости при запуске установки pipenv ...
Но я хотел бы иметь эту зависимость непосредственно в колесе (я пытаюсь выполнить ее на aws клей).
Как бы я это сделал?