2016-07-25 4 views
-3

значение. Я называю программу. Пример «pip» (поскольку у меня возникают проблемы с pip) и что делает система Linux для поиска этой программы?Что происходит, когда вы вызываете программу с терминала?

У меня возникли проблемы с установкой пипса, и я попытался понять, что происходит под капотом, когда я набираю pip или любую программу в терминал и нажимаю enter.

Надеюсь, это позволяет мне решить проблему.

, если вы хотите знать, что проблема, которую я имею это ImportError: No module named 'pip'

+3

Этот вопрос лучше подходит для [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/). Поскольку * этот вопрос, похоже, не касается программирования в пределах области, определенной в [справочном центре] (http://stackoverflow.com/help/on-topic). * –

ответ

0

Linux будет искать все доступные из каталогов, перечисленных в переменной PATH окружающей среды, а если найти pip от любого пути, он будет пытаться выполнить его , И тогда, если файл pip имеет разрешение для пользователя, система выполнит эту команду.

0

В общем случае оболочка ищет в каталогах, перечисленных в переменной PATH, чтобы найти файл с именем, которое вы ввели. Если вы хотите узнать, какой файл на самом деле пытается запустить оболочка, в unix-подобной системе (читать не окна), запустить which pip. Я считаю, что эквивалент Windows равен where pip, но не цитируйте меня на этом.

Конкретная ошибка, с которой вы сталкиваетесь, как представляется, является результатом запуска python примерно python -m pip, что означает Python, пожалуйста, запустите модуль с именем pip. Учитывая, что в вашей системе существует файл с именем pip, который пытается запустить pip, я предполагаю, что происходит одна из двух вещей.

  1. Либо вы удалили некоторые из файлов, так или иначе, в этом случае вы должны попытаться переустановить pip

  2. Или вы изменили, которые питон питон по умолчанию, и вы не имеете pip модуль в используемом вами питоне.

Чтобы проверить последнюю теорию, попробуйте запустить which python и если есть на пути к 2, а затем запустить python3 -m pip, чтобы увидеть, если питоны смешалось. И наоборот, если вы находитесь в системе, которая по умолчанию использует python3, вы увидите 3 в результате выполнения вышеуказанной команды, и вы можете попробовать python2 -m pip.

Надеюсь, что это поможет устранить беспорядок, который является версией Python.

+0

спасибо. Я работаю над этим полдня. я, который питон, и я получил /USR/BIN/питон я, который пип и я получил /USR/местные/бен/пип Мое предположение, что поскольку питон и пип находятся в двух разных местах мой пип ломается. Это верно? –

+0

Это вполне возможно. Я бы рекомендовал открыть '/ usr/local/bin/pip', который должен быть текстовым файлом, и посмотреть, можете ли вы понять, чего он хочет. – Mobius