Сборка python яйца, первая буква неправильно удалена из root имени файла / папки - PullRequest
4 голосов
/ 13 июля 2020

Я пытаюсь построить яйцо для своего проекта python, используя setuptools, однако всякий раз, когда я создаю яйцо, все содержимое строится с первой буквой, если каждый файл / папка удален.

Например, моя родительская папка называется dp, которая переименовывается в p. Т.е. когда я распаковываю файл с яйцом, я вижу родительскую папку с именем p и другую папку с именем GG-INFO (они должны называться dp и EGG-INFO соответственно). Все остальные папки внутри папки p названы правильно.

Это проблема, потому что я ссылаюсь на функции в модулях в этой папке - например, from dp.module import function, который не работает, потому что он жалуется на то, что не нашел папка dp (что верно, так как по какой-то причине она была переименована в p).

Мой setup.py файл выглядит так:

from setuptools import setup, find_packages
setup(
    name="dp",
    version="1.0",
    author="XXXX",
    author_email="XXXX",
    description="Data pipeline for XXX algorithm.",
    long_description_content_type="text/markdown",
    url="XXXX",
    packages=find_packages(),
    package_data={'': ['*.sql', '*.json', '*.txt']},
    include_package_data=True,
    classifiers=[
        "Programming Language :: Python :: 3"
    ],
    python_requires='>=3.6',
    install_requires=['argparse', 'boto3', 'datetime', 'mmlspark', 'pandas', 'pyspark', 'pypandoc', 'scikit-learn',
                      'numpy', 'googleads', 'mlflow']
)

Я пробовал переименовать родительский каталог, и происходит то же самое. Я запускаю это через PyCharm (обновленный до последней версии) на Ma c OS Mojave.

Буду признателен за любые идеи, как это исправить.

File Structure

Переименованные папки

Обновление: Я использовал другой метод для создания яйца, которое меня разблокировало, но проблема все еще остается с исходным методом.

Шаги для воспроизведения

  • Создайте новый проект в Pycharm
  • Добавьте файл setup.py в root, см. выше.
  • Инструменты -> Выполнить setup.py задача -> bdist.egg
  • Генерирует яйцо. Переименуйте расширение в file_name.zip, разархивируйте файл, проверьте содержимое папки.
  • Я обнаружил, что первая буква имен папок всегда отсутствовала (я изменил имена папки, и она последовательно удалялась первая буква).

Обходной путь

  • Вместо создания яйца через Pycharm я использовал команду python setup.py bdist_egg в терминале, который создал яйцо без проблем.
  • Я думаю, это подтверждает, что это ошибка Pycharm (?). Коллеге удавалось периодически воспроизводить эту ошибку с помощью Pycharm.

1 Ответ

2 голосов
/ 21 июля 2020

Попробуйте колесо.

pip install wheel setuptools pip -U
pip wheel --no-deps --wheel-dir=build .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...