Как исправить ошибку «Нет такого файла или каталога» в execute console-script с помощью setup.py ?

#django #python-3.x #setup.py

#django #python-3.x #setup.py

Вопрос:

Я написал статический генератор блогов, созданный с использованием Django. Некоторые проблемы возникли, когда я упаковал его с setup.py и создал соответствующий исполняемый файл.

Когда я использую pip install maltose его для установки и запуска maltose-cli migrate , пока все нормально.

Но когда я запускаю maltose-cli runserver , я получаю сообщение об ошибке, которое c:softwarepythonpython.exe: can't open file 'C:SoftwarePythonScriptsmaltose-cli': [Errno 2] No such file or directory .

И затем, я пытаюсь maltose-cli.py runserver , все в порядке.

Это мой setup.py

 setup(
    name=NAME,
    version=about['__version__'],
    description=DESCRIPTION,
    long_description=long_description,
    long_description_content_type='text/markdown',
    author=AUTHOR,
    author_email=EMAIL,
    python_requires=REQUIRES_PYTHON,
    url=URL,
    packages=find_packages(include=["maltose", 'maltose.*']),

    scripts=['maltose-cli.py'],
    entry_points={
        'console_scripts': ['maltose-cli=maltose:execute'],
    },
    install_requires=REQUIRED,
    extras_require=EXTRAS,
    include_package_data=True,
    license='MIT',
    classifiers=[
        # Trove classifiers
        # Full list: https://pypi.python.org/pypi?:action=list_classifiers
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 3.6',
    ],
    # $ setup.py publish support.
    cmdclass={
        'upload': UploadCommand,
    },
)
  

Реж

 Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2019/4/20     18:41                maltose
-a----        2019/4/20     18:47             90 maltose-cli.py
-a----        2019/4/20     18:47           4047 setup.py
  

В maltose/__init__.py

 import os
import sys


def execute():
    os.environ.setdefault('DJANGO_DEBUG', 'True')
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maltose.maltose.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line()
  

Если вам нужно, весь код находится в https://github.com/MaltoseEditor/maltose

Как я могу это решить? Я надеюсь, что при запуске он будет работать нормально maltose-cli runserver .

Ответ №1:

Эта ошибка связана с функцией автоматической перезагрузки при изменении исходного кода проекта.

В качестве обходного пути используйте флаг —noreload, чтобы отключить эту функцию.

 maltose-cli runserver --noreload
  

Примечание сбоку: это также относится к Bottle.py