Laravel 7 w/ Laravel Excel:您的需求无法解决为一组可安装的软件包
Posted
技术标签:
【中文标题】Laravel 7 w/ Laravel Excel:您的需求无法解决为一组可安装的软件包【英文标题】:Laravel 7 w/ Laravel Excel: Your requirements could not be resolved to an installable set of packages 【发布时间】:2020-06-17 02:28:22 【问题描述】:我正在尝试将 Laravel Excel 安装在 Larevel 7 中,并使用 PHP 7.4 在 Docker 容器 中运行> 但我收到了这个错误,我不知道如何解决。
e-learning-app/src on dev [$!] via ⬢ v12.8.1 via ???? v7.4.4
➜ docker:composer require maatwebsite/excel
Starting e-learning-app-php ... done
Using version ^3.1 for maatwebsite/excel
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- maatwebsite/excel 3.1.x-dev requires phpoffice/phpspreadsheet ^1.11 -> satisfiable by phpoffice/phpspreadsheet[1.11.0, 1.12.0, 1.13.0].
- maatwebsite/excel 3.2.x-dev requires phpoffice/phpspreadsheet ^1.11 -> satisfiable by phpoffice/phpspreadsheet[1.11.0, 1.12.0, 1.13.0].
- maatwebsite/excel 3.1.0 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.1 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.13 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.14 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.15 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.16 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.17 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.18 requires phpoffice/phpspreadsheet ^1.10 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0].
- maatwebsite/excel 3.1.19 requires phpoffice/phpspreadsheet ^1.10 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0].
- maatwebsite/excel 3.1.2 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.3 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.4 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.5 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.6 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.7 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.8 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- maatwebsite/excel 3.1.9 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.10.0, 1.10.1, 1.11.0, 1.12.0, 1.13.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
- phpoffice/phpspreadsheet 1.9.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.8.2 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.8.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.8.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.7.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.6.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.5.2 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.5.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.5.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.4.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.4.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.13.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.12.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.11.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.10.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.10.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- Installation request for maatwebsite/excel ^3.1 -> satisfiable by maatwebsite/excel[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17, 3.1.18, 3.1.19, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.x-dev, 3.2.x-dev].
To enable extensions, verify that they are enabled in your .ini files:
- /usr/local/etc/php/php-cli.ini
- /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
- /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Installation failed, reverting ./composer.json to its original content.
e-learning-app/src on dev [$!] via ⬢ v12.8.1 via ???? v7.4.4 took 3m 1s
➜
我已经通过运行在容器内手动安装了 gd:
apt-get update && apt-get install -y --no-install-recommends \
build-essential \
zlib1g-dev \
libpng-dev \
&& docker-php-ext-configure gd --enable-gd && docker-php-ext-install -j$(nproc) gd
但问题仍然存在,当我执行php -m
时,似乎安装了 gd:
# php -m
[PHP Modules]
Core
curl
pdo_mysql
...
zlib
gd
[Zend Modules]
#
但是当我通过我的作曲家容器执行composer show -p
时,gd 扩展名不会出现:
e-learning-app on dev [$!?] on ???? v19.03.8 took 1h 10s
➜ docker:composer show -p
Starting e-learning-app-php ... done
composer-plugin-api 1.1.0 The Composer Plugin API
composer-runtime-api 1.0.0 The Composer Runtime API
ext-ctype 7.4.6 The ctype PHP extension
ext-curl 7.4.6 The curl PHP extension
ext-date 7.4.6 The date PHP extension
ext-dom 20031129 The dom PHP extension
ext-fileinfo 7.4.6 The fileinfo PHP extension
ext-filter 7.4.6 The filter PHP extension
ext-ftp 7.4.6 The ftp PHP extension
ext-hash 7.4.6 The hash PHP extension
ext-iconv 7.4.6 The iconv PHP extension
ext-json 7.4.6 The json PHP extension
ext-libxml 7.4.6 The libxml PHP extension
ext-mbstring 7.4.6 The mbstring PHP extension
ext-mysqlnd 0 The mysqlnd PHP extension (actual version: mysqlnd 7.4.6)
ext-openssl 7.4.6 The openssl PHP extension
ext-pcre 7.4.6 The pcre PHP extension
ext-PDO 7.4.6 The PDO PHP extension
ext-pdo_sqlite 7.4.6 The pdo_sqlite PHP extension
ext-Phar 7.4.6 The Phar PHP extension
ext-posix 7.4.6 The posix PHP extension
ext-readline 7.4.6 The readline PHP extension
ext-Reflection 7.4.6 The Reflection PHP extension
ext-session 7.4.6 The session PHP extension
ext-SimpleXML 7.4.6 The SimpleXML PHP extension
ext-sodium 7.4.6 The sodium PHP extension
ext-SPL 7.4.6 The SPL PHP extension
ext-sqlite3 7.4.6 The sqlite3 PHP extension
ext-tokenizer 7.4.6 The tokenizer PHP extension
ext-xml 7.4.6 The xml PHP extension
ext-xmlreader 7.4.6 The xmlreader PHP extension
ext-xmlwriter 7.4.6 The xmlwriter PHP extension
ext-zip 1.15.6 The zip PHP extension
ext-zlib 7.4.6 The zlib PHP extension
lib-curl 7.67.0 The curl PHP library
lib-libxml 2.9.10 The libxml PHP library
lib-openssl 1.1.1.7 OpenSSL 1.1.1g 21 Apr 2020
lib-pcre 10.34 The pcre PHP library
php 7.4.6 The PHP interpreter
php-64bit 7.4.6 The PHP interpreter, 64bit
php-ipv6 7.4.6 The PHP interpreter, with IPv6 support
而且我不知道为什么会这样。我尝试了很多东西都没有成功...
这是我的Dockerfile
PHP
FROM php:7.4-fpm
WORKDIR /var/www/html
RUN docker-php-ext-install pdo_mysql
这是我docker-compose.yml
中的 php 部分:
php:
build:
context: .
dockerfile: Dockerfile
container_name: e-learning-app-php
volumes:
- ./src:/var/www/html
ports:
- "9007:9000"
networks:
- laravel
还有我的作曲部分:
composer:
image: composer:latest
container_name: e-learning-app-composer
volumes:
- ./src:/var/www/html
working_dir: /var/www/html
depends_on:
- php
networks:
- laravel
帮助。
【问题讨论】:
【参考方案1】:composer 需要 maatwebsite/excel --ignore-platform-reqs
试试这个。这对我来说很好用
【讨论】:
以上是关于Laravel 7 w/ Laravel Excel:您的需求无法解决为一组可安装的软件包的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Excel 实现 Excel-CSV 文件导入导出功能