Я работаю на Ubuntu 19.10. Я установил Python pbkdf2 с
pip3 install pbkdf2
использование pip3 show
параметр I видит, что установлен.
$pip3 show pbkdf2
Name: pbkdf2
Version: 1.3
Summary: PKCS#5 v2.0 PBKDF2 Module
Home-page: http://www.dlitz.net/software/python-pbkdf2/
Author: Dwayne C. Litzenberger
Author-email: dlitz@dlitz.net
License: UNKNOWN
Location: /home/xyz/.local/lib/python3.7/site-packages
Requires:
Required-by:
Попытка выполнить этот простой код;
import base64
from Crypto.Cipher import AES
from pbkdf2 import PBKDF2
salt = 16 * b'\0'
key = PBKDF2(Config.SECRET, salt).read(32)
iv = PBKDF2(Config.SECRET, salt).read(16)
Получил эту ошибку
$python3.7 pbkdf2.py
Traceback (most recent call last):
File "pbkdf2.py", line 3, in <module>
import PBKDF2
ModuleNotFoundError: No module named 'PBKDF2'
Как я могу решить эту проблему?
Примечание 1: я также попытался установить pbkdf2
с диспетчером пакетов Ubuntu и это не решило эту проблему.
Примечание 2: Использование python3.7 -m pip install pbkdf2
У меня есть это
defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pbkdf2 in /home/xyx/.local/lib/python3.7/site-packages (1.3)
Если сначала удаленный с pip3 uninstall pbkdf2
затем у меня есть только первое предупреждение.
Базовая проблема здесь, обнаруженный после обсуждений и дополнительного поиска и устранения неисправностей через чат-комнату для этого вопроса, состояла в том, что файл, который Вы пытаетесь выполнить, является тем же самым именем как библиотека, которую Вы пытаетесь импортировать.
Python очень придирчив в том, как он проверяет на библиотеки. Вообще говоря, Python import
команды проверяют следующие 3 места на Вашу среду при прямом вызове из каталога в запасе установки Ubuntu. Это также располагает по приоритетам эти местоположения, как перечислено:
/home/xyz/Projects/Python/
, который содержит pbkdf2.py
который является тем же файлом, который Вы пытаетесь выполнить, но также и носит то же самое имя как вещь, Вы пытаетесь import
от!)pip3
установленный pbkdf2
от PyPI.sudo pip3
).Поскольку Ваш файл называют pbkdf2.py
и то же точное имя как библиотека, которую мы установили в локальном хранилище пакетов Вашего пользователя для Python 3, это пытается импортировать из себя, который по очевидным причинам перестал работать. Переименуйте свой файл pbkdf2.py
кому: pbkdf2_.py
или подобный (как долго, поскольку имя не pbkdf2.py
) и это должно затем "просто работать".
(Причина, это затем "Просто Работает", состоит в том, потому что, потому что первый случай (проверки каталога Projects, поскольку 'источники базируются' для проекта) больше не существует - существует нет pbkdf2.py
файл и поэтому это не может быть импортировано из. Это затем отступает к второму случаю, Вашему пользовательскому винному магазину в /home/xyz/.local/lib/python3.7/site-packages
который является где pbkdf2
на самом деле жизни, таким образом, import
команда успешна.)