ModuleNotFoundError: Хотя модуль * moviepy в Django не установлен, хотя и установлен - PullRequest
0 голосов
/ 25 марта 2020

Я установил MoviePy в виртуальной среде следующим образом:

(env)$: sudo pip install ez_setup
Requirement already satisfied: ez_setup in /usr/local/lib/python2.7/dist-packages

(env)$: sudo pip install moviepy
Requirement already satisfied: moviepy in /usr/local/lib/python2.7/dist-packages
Requirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python2.7/dist-packages (from moviepy)
Requirement already satisfied: numpy in /usr/local/lib/python2.7/dist-packages (from moviepy)
Requirement already satisfied: proglog<=1.0.0 in /usr/local/lib/python2.7/dist-packages (from moviepy)
Requirement already satisfied: requests<3.0,>=2.8.1 in /home/ac3l1k/.local/lib/python2.7/site-packages (from moviepy)
Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python2.7/dist-packages (from moviepy)
Requirement already satisfied: imageio<2.5,>=2.0 in /usr/local/lib/python2.7/dist-packages (from moviepy)
Requirement already satisfied: idna<2.8,>=2.5 in /home/ac3l1k/.local/lib/python2.7/site-packages (from requests<3.0,>=2.8.1->moviepy)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/ac3l1k/.local/lib/python2.7/site-packages (from requests<3.0,>=2.8.1->moviepy)
Requirement already satisfied: certifi>=2017.4.17 in /home/ac3l1k/.local/lib/python2.7/site-packages (from requests<3.0,>=2.8.1->moviepy)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/ac3l1k/.local/lib/python2.7/site-packages (from requests<3.0,>=2.8.1->moviepy)
Requirement already satisfied: enum34 in /home/ac3l1k/.local/lib/python2.7/site-packages (from imageio<2.5,>=2.0->moviepy)
Requirement already satisfied: futures in /usr/local/lib/python2.7/dist-packages (from imageio<2.5,>=2.0->moviepy)
Requirement already satisfied: pillow in /usr/lib/python2.7/dist-packages (from imageio<2.5,>=2.0->moviepy)

Установка прошла успешно, как вы можете видеть в выходных данных выше. Но когда я использую moviepy в моем models.py проекте Django, я получаю:

ModuleNotFoundError: No module named 'moviepy'

Команда pip freeze дает мне следующий список установленных модулей:

cffi==1.13.2
cryptography==2.8
dj-database-url==0.5.0
Django==2.2.7
django-extensions==2.2.5
django-filter==2.2.0
django-secure==1.0.1
django-sslserver==0.22
djangorestframework==3.10.3
ez-setup==0.9
Pillow==6.2.1
pkg-resources==0.0.0
pycparser==2.19
pyOpenSSL==19.1.0
pytz==2019.3
six==1.13.0
sqlparse==0.3.0

Модуль moviepy отсутствует в списке. Почему?

Ответы [ 2 ]

3 голосов
/ 25 марта 2020

Префикс pip install с sudo позволяет запустить установку в другой среде, и, таким образом, вы в основном «деактивируете» установку пакета.

Таким образом, вы должны запустить это с помощью:

(env)$: pip install moviepy

Примечание : Пожалуйста, никогда используйте sudo при установке пакетов. Запустив его с sudo, вы даете установке root доступ. Если в пакете содержится вредоносный код, вы даете ему возможность вносить изменения в систему. Вместо этого вы можете использовать pip3 install <b>--user</b> <i>packagename</i>.

3 голосов
/ 25 марта 2020

Вы используете sudo при установке moviepy, он устанавливает пакеты как root, поэтому pip ищет в папке /usr/local/lib/python2.7/dist-packages.

В вашей среде (env ) активирован, не используйте sudo для установки moviepy, и пакет будет установлен в вашей среде.

...