Построить толстое колесо с Pipenv - PullRequest
0 голосов
/ 21 января 2020

Я создаю 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 клей).

Как бы я это сделал?

...