#python #django #heroku #ubuntu-18.04
#python #django #heroku #ubuntu-18.04
Вопрос:
Я получаю сообщение об ошибке при развертывании проекта Django на heroku.
ERROR: Could not find a version that satisfies the requirement apturl==0.5.2 (from -r /tmp/build_3724e729_/requirements.txt (line 1)) (from versions: none)
ERROR: No matching distribution found for apturl==0.5.2 (from -r /tmp/build_3724e729_/requirements.txt (line 1))
Я попытался переустановить apturl, и я вижу ниже — распаковка aptutl 0.5.2, но все равно я получаю сообщение об ошибке в heroku.
sudo apt-get install apturl apturl-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
efibootmgr libboost-program-options1.65.1 libegl1-mesa libfwup1
libgoogle-perftools4 libllvm9 libpcrecpp0v5 libtcmalloc-minimal4
libwayland-egl1-mesa libyaml-cpp0.5v5 linux-headers-5.4.0-45-generic
linux-hwe-5.4-headers-5.4.0-42 linux-hwe-5.4-headers-5.4.0-45
linux-image-5.4.0-45-generic linux-modules-5.4.0-45-generic
linux-modules-extra-5.4.0-45-generic mongo-tools mongodb-server-core
Use 'sudo apt autoremove' to remove them.
Suggested packages:
libgtk2-perl
The following NEW packages will be installed:
apturl apturl-common
0 upgraded, 2 newly installed, 0 to remove and 52 not upgraded.
Need to get 19.4 kB of archives.
After this operation, 228 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu bionic-updates/main amd64 apturl-common amd64 0.5.2ubuntu14.2 [10.9 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu bionic-updates/main amd64 apturl amd64 0.5.2ubuntu14.2 [8,464 B]
Fetched 19.4 kB in 1s (31.2 kB/s)
Selecting previously unselected package apturl-common.
(Reading database ... 229913 files and directories currently installed.)
Preparing to unpack .../apturl-common_0.5.2ubuntu14.2_amd64.deb ...
Unpacking apturl-common (0.5.2ubuntu14.2) ...
Selecting previously unselected package apturl.
Preparing to unpack .../apturl_0.5.2ubuntu14.2_amd64.deb ...
Unpacking apturl (0.5.2ubuntu14.2) ...
Setting up apturl-common (0.5.2ubuntu14.2) ...
Setting up apturl (0.5.2ubuntu14.2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Комментарии:
1.
apturl
это системный пакет, а не пакет python. Он устанавливается черезapt
notpython
илиpip
. Вы использовали пакет сборки Python , в котором зависимости устанавливаются черезrequirements.txt
(илиPipfile
илиsetup.py
). Вам нужен пакет сборки Apt, через который устанавливаются зависимостиAptfile
.2. @TinNguyen. Пожалуйста, проверьте выше, я сделал только sudo apt-get, а не pip install.
3. Я в курсе. Однако при развертывании приложения ваша среда сборки сбрасывается. Вы не можете писать
sudo apt-get install apturl apturl-common
. При развертывании приложения ваше приложение не будет развертываться в первую очередь. Это правильный шаг, если вы работаете на компьютере с Ubuntu, который вы полностью контролируете. Машина, файловая система которой не стирается после каждой фиксации кода.4. @TinNguyen. Не могли бы вы объяснить мне, что я должен делать? Я новичок в этом и мало что знаю об этом.
5. См. devcenter.heroku.com/articles/… Вам нужно github.com/heroku/heroku-buildpack-apt и github.com/heroku/heroku-buildpack-python . Для Python у вас, вероятно, был файл с именем
requirements.txt
. Для Apt вам нуженAptfile
. Как это работает, описано на их GitHub. Пакет сборки Apt должен запускаться перед Python multiple (см. Связанную статью), поэтому, когда Python проверяетapturl
, что он уже установлен, и там ничего не нужно делать.