【问题标题】:There are no commands defined in the "setup" namespace : Magento 2“设置”命名空间中没有定义命令:Magento 2
【发布时间】:2016-02-29 09:14:03
【问题描述】:

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

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

[无效参数异常]
“setup”命名空间中没有定义命令。

截图:

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

【问题讨论】:

  • Magento 其他命令是否有效?
  • 检查 composer.json 和 module.xml 是否正确存在于所有当前模块下。

标签: magento magento2 magento-2.0


【解决方案1】:

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

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


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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        只需删除所有var目录并删除pub/static目录即可bin/magentosetup:upgrade

        【讨论】:

          【解决方案5】:

          请在您的 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
          

          【讨论】:

          • 在我的情况下,当我收到该错误时,我丢失了整个 etc/module.xml 文件。添加文件允许命令正确运行。
          【解决方案6】:

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

          “setup”命名空间中没有定义命令。

          一般。

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

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

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

          【讨论】:

          • 在 composer create-project 和 bin/magento setup:install 之间只有一组受限的可用命令。安装完成后,所有命令都已到位。我还不知道为什么会发生这种情况(可能是因为还没有用于缓存的数据库或配置文件..),因为 vendor 中的所有模块(执行命令)都存在。例如,没有 config:set(我需要在 setup:install 之前运行),也没有缓存命名空间,没有索引等。
          【解决方案7】:

          varpub 目录给予完全控制(读/写/执行)应该可以解决这个问题。

          sudo chmod -R 777 var pub
          

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

          sudo php bin/magento setup:upgrade
          

          【讨论】:

          • sudo php bin/magento setup:upgrade 对我来说很好。
          猜你喜欢
          • 2016-12-12
          • 1970-01-01
          • 1970-01-01
          • 2018-01-12
          • 2016-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多