"setup" 命名空间中没有定义命令:Magento 2

There are no commands defined in the "setup" namespace : Magento 2

我已经安装了 latest version of Megento 2,前端、后端和功能一切正常。

我有一个关于 bin/magento setup:upgrade 命令的问题,当我在终端中 运行 这个命令时,我得到以下异常。

[InvalidArgumentException]
There are no commands defined in the "setup" namespace.

截图:

我在安装过程中是否遗漏了什么,或者我需要安装一些软件包才能让它工作?

请在您的 module.xml 文件中提及 setup_version。 您的 module.xml 文件如下所示:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
  <module name="Vendor_Module" setup_version="1.0.0"/> 
</config>

您需要递归地授予 varpub 文件夹的完全权限。

sudo chmod -R 777 var pub

完全控制 (read/write/execute) varpub 目录应该可以解决这个问题。

sudo chmod -R 777 var pub

您也可以使用 sudo 尝试 运行 命令。

sudo php bin/magento setup:upgrade

我想添加一个答案,因为其他答案并未涵盖可能产生此错误的所有问题:

There are no commands defined in the "setup" namespace.

一般。

此错误可能是由其他人回答中所说的权限引起的,但我们可能有其他情况。

  • 缺席:etc/module.xml
  • /etc/module.xml 或 /etc/di.xml 或 /etc 下的其他 xml 扩展中的错误

如果您知道其他情况,请评论此答案。
希望对您有所帮助。

只需删除 var 的所有目录并删除 pub/static 目录,它将起作用 bin/magento setup:upgrade

我在 运行 与 magento 相关的命令时遇到了同样的错误。我在自定义模块的 module.xml 文件中丢失了 double_quotes(")。因此请检查 module.xml 文件是否有错别字和 setup_version.

我想再添加一个提示,请检查 env.php 中的 'MAGE_MODE' 值是否正确设置。

这个错误的原因可以在命令输出中看到:php -f bin/magento.

这适用于大多数错误,例如 There are no commands defined in the "..." namespace.


一个相当常见的原因是 VendorName/ModuleName/etc/config.xml.

中的错误

简单 运行 php bin/magento 这将向您显示损坏的详细信息