Почему OSX не работает с python, с которым я получаю whereis python

У меня есть машина под управлением OSX Yosemite (это было через несколько версий OSX, что может иметь значение).

Я заметил аномалию в том, может ли python импортировать библиотеки в зависимости от того, запускался ли скрипт напрямую, т.е.

./Myscript.py 

Или путем прямого вызова python

 python Myscript.py 

Теперь, если я напечатаю

 $whereis python /usr/bin/python 

И моя строка shebang в скрипте

 #!/usr/bin/python 

Поэтому я предположил, что в обоих случаях работает одна и та же версия python.

Но после расследования я нахожу

 $python --version Python 2.7.6 $/usr/bin/python --version Python 2.7.10 

Таким образом, казалось бы, исполняемый python не тот, который я получаю, когда я делаю whereis

Может ли кто-нибудь пролить свет на это, а также уточнить, как его исправить? Я действительно хочу работать с 2,7.10 в обоих случаях, так как прямо сейчас, когда я устанавливаю библиотеки, они идут в 2.7.6, но когда я запускаю скрипты, они запускают 2.7.10 и не могут видеть библиотеки.

благодаря

Джон

One Solution collect form web for “Почему OSX не работает с python, с которым я получаю whereis python”

Не используйте whereis , эта команда игнорирует PATH среды PATH . С manpage:

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

Акцент мой.

У вас есть PATH среды PATH которая включает «нестандартную» двоичную директорию. Используйте, чтобы найти, откуда приходит python :

 $ which python 

which дает вам фактическое двоичное значение, используемое для текущей конфигурации оболочки:

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

Вы можете использовать which -a чтобы найти все возможные доработки для команды:

 $ which -a python 

Также см. «Whereis» и «which» возвращают разные пути в Mac OS X на Super User.

Демо-версия:

 $ PATH=/opt/homebrew/bin:$PATH whereis python /usr/bin/python $ PATH=/opt/homebrew/bin:$PATH which -a python /opt/homebrew/bin/python /usr/bin/python 

Поэтому даже с PATH явно указывающим на мой homebrew-каталог, whereis игнорирует его. which находит его и перечисляет его первым (аргумент -a заставил его искать дополнительные параметры).

Interesting Posts

Почему мой код печатает 18 вместо 10, и можете ли вы предоставить какие-либо решения?

Существуют ли стандартные условные обозначения командной строки для тире и аргументов?

python threading.timer устанавливает ограничение по времени, когда программа заканчивается

MySQL Connector / Python InterfaceError: «Не удалось разобрать пакет EOF»

Как импортировать файл python в скрипт python более одного раза

Автоматически читать текст чата от Minecraft

Назначить много переменных одновременно, Python

Отправка некоторых ключей в неактивное окно с помощью python

Python Selenium Webdriver – аутентификация прокси

Python PIL: найдите размер изображения, не записывая его в виде файла

Pandon pandas: выберите столбцы со всеми нулевыми значениями в dataframe

Как работает вызов на Python?

Wxpython просматривает или перетаскивает папку

Ошибка кодирования при десериализации объекта json от Google

Формат ведения журнала Django для Logstash

Python - лучший язык программирования в мире.