Не могу использовать модули pip3: ModuleNotFoundError - PullRequest
1 голос
/ 13 мая 2019

Я использовал homebrew для установки python3, и теперь не могу запустить модули, которые устанавливаю с соответствующим двоичным файлом pip3.

from blackduck.HubRestApi import HubInstance
username = "sysadmin"
password = "your-password"
urlbase = "https://ec2-34-201-23-208.compute-1.amazonaws.com"
hub = HubInstance(urlbase, username, password, insecure=True)

Запуск python3 blackduck.py Результат:

ModuleNotFoundError: No module named 'blackduck.HubRestApi'; 'blackduck' is not a package

Подтверждениепакет:

$pip3 install blackduck                                                                                                                                    
Requirement already satisfied: blackduck in /usr/local/lib/python3.7/site-packages (0.0.25)
Requirement already satisfied: requests in /usr/local/lib/python3.7/site-packages (from blackduck) (2.21.0)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/lib/python3.7/site-packages (from requests->blackduck) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/site-packages (from requests->blackduck) (2019.3.9)
Requirement already satisfied: urllib3<1.25,>=1.21.1 in /usr/local/lib/python3.7/site-packages (from requests->blackduck) (1.24.3)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.7/site-packages (from requests->blackduck) (3.0.4)

help('modules') -> содержит blackduck

$pip3 list | grep blackduck          
blackduck  0.0.25

Я пытался создать виртуальную среду, но безрезультатно.Я также попытался добавить /usr/local/lib/python3.7/site-packages к моей переменной $PYTHONPATH env.Заранее спасибо!

1 Ответ

2 голосов
/ 13 мая 2019

Не называйте свой собственный скрипт Python так же, как модуль или пакет Python - он сам поднимается!

С документация пути поиска :

Когда импортируется модуль с именем спам, интерпретатор сначала ищет встроенный модуль с таким именем.Если он не найден, он ищет файл с именем spam.py в списке каталогов, заданных переменной sys.path.sys.path инициализируется из следующих мест:

Каталог, содержащий сценарий ввода (или текущий каталог, если файл не указан).

PYTHONPATH (список имен каталогов, с теми жесинтаксис в качестве переменной оболочки PATH).

Зависит от установки по умолчанию.

Итак, при прочих равных, текущий каталог сначала ищется.

Вызовэто что-нибудь еще, как my_blackduck.py.Я рекомендую вам использовать доморощенный префикс, возможно, код проекта с последующим чем-то вроде подчеркивания, для сценариев разработки, чтобы вы не повторяли проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...