如何通过setup.py解决执行控制台脚本中的“无此类文件或目录”错误?

时间:2019-04-20 11:35:15

标签: django python-3.x setup.py

我写了一个使用Django构建的静态博客生成器。当我将其与setup.py打包并创建相应的可执行文件时,会发生一些问题。

当我使用pip install maltose安装并运行maltose-cli migrate时,到目前为止一切正常。

但是当我运行maltose-cli runserver时,出现了一个错误c:\software\python\python.exe: can't open file 'C:\Software\Python\Scripts\maltose-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?%3Aaction=list_classifiers
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 3.6',
    ],
    # $ setup.py publish support.
    cmdclass={
        'upload': UploadCommand,
    },
)

Dir

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 个答案:

答案 0 :(得分:-1)

该错误与项目的源代码更改时的自动重新加载功能有关。

作为解决方法,请使用--noreload flag禁用此功能。

maltose-cli runserver --noreload

旁注:这也适用于Bottle.py