Я пытаюсь построить яйцо для своего проекта 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.
Буду признателен за любые идеи, как это исправить.
Переименованные папки
Обновление: Я использовал другой метод для создания яйца, которое меня разблокировало, но проблема все еще остается с исходным методом.
Шаги для воспроизведения
- Создайте новый проект в Pycharm
- Добавьте файл setup.py в root, см. выше.
- Инструменты -> Выполнить setup.py задача -> bdist.egg
- Генерирует яйцо. Переименуйте расширение в
file_name.zip
, разархивируйте файл, проверьте содержимое папки. - Я обнаружил, что первая буква имен папок всегда отсутствовала (я изменил имена папки, и она последовательно удалялась первая буква).
Обходной путь
- Вместо создания яйца через Pycharm я использовал команду
python setup.py bdist_egg
в терминале, который создал яйцо без проблем. - Я думаю, это подтверждает, что это ошибка Pycharm (?). Коллеге удавалось периодически воспроизводить эту ошибку с помощью Pycharm.