Почему 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 заставил его искать дополнительные параметры).

  • Каковы различия в Pythons time.clock () в Mac против Windows?
  • Могу ли я использовать Python для захвата событий клавиатуры и мыши в OSX?
  • PyCrypto и библиотека GMP не нашли ошибку
  • После установки Anaconda я получаю постоянное сообщение «KeyError:« PYTHONPATH »
  • Pip install --target =. Alfred-Workflow дает ошибку
  • pexpect не может передать ввод более чем на 1024 символа?
  • Python setuptools, не включая стандартные заголовки библиотек C ++
  • MacOSX + Boost_Python + PyFTGL: - Символ не найден, ожидается в: плоском пространстве имен
  • AttributeError: объект 'module' не имеет атрибута 'PROTOCOL_TLSv1_2' с Python 2.7.11
  • _tkinter TclError: не удается найти пакет Tix
  • как исправить distutils.errors.DistutilsError на py2app?
  • Python - лучший язык программирования в мире.