Добавить в python путь Mac OS X

Я думал

import sys
sys.path.append("/home/me/mydir")

добавляет каталог к ​​моему питону

если я печатаю sys.path, мой каталог там.

Затем я открываю новую команду, и ее больше нет.

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

Что я делаю неправильно?

Я читаю.profile или.bash_profile.

Должен ли я добавить:

PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH

Чтобы это работало?

8 ответов

Решение

Модификации для sys.path применять только для жизни этого интерпретатора Python. Если вы хотите сделать это навсегда, вам нужно изменить PYTHONPATH переменная окружения:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH"
export PYTHONPATH

Обратите внимание, что PATH системный путь для исполняемых файлов, который является полностью отдельным.

** Вы можете написать выше в ~/.bash_profile и источник это использует source ~/.bash_profile

В MAC OS вы можете просто найти местоположение python / python3 с помощью команды which python или which python3. (работает и для Linux)

И должно получиться что-то вроде:

Для питона

      /usr/local/bin/python

Для python3

      /Library/Frameworks/Python.framework/Versions/3.9/bin/python3

Экспортируйте путь в свой bash_profile

В вашем типе терминала

      sudo nano ~/.bash_profile

Введите свой пароль и вставьте следующие строки

      PYTHONPATH="/Library/Frameworks/Python.framework/Versions/3.9/bin/python3"
export PYTHONPATH

Нажмите control + x для выхода и нажмите y для экономии на просьбе сохранить

Нажмите Enter, чтобы вернуться в окно терминала.

Загрузите его, используя следующую команду в терминале, запустите

      source ~/.bash_profile

Путь к python3 должен быть обновлен сейчас !!

Не уверен, почему решение Мэтью не сработало для меня (возможно, я использую OSX10.8 или что-то связанное с macports). Но я добавил следующее в конец файла в ~/.profile

export PYTHONPATH=/path/to/dir:$PYTHONPATH

мой каталог сейчас находится на pythonpath -

my-macbook:~ aidan$ python
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/path/to/dir', ...  

и я могу импортировать модули из этого каталога.

Ответ Мэтью работает для терминальной оболочки Python, но в моем случае он не работал для оболочки IDLE, потому что существовало много версий python, прежде чем я заменил их все на Python2.7.7. Как я решил проблему с IDLE.

  1. В терминале, cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
  2. затем sudo nano idlemain.pyвведите пароль, если требуется.
  3. после os.chdir(os.path.expanduser('~/Documents')) эту строку я добавил sys.path.append("/Users/admin/Downloads....") ПРИМЕЧАНИЕ: замените содержимое кавычек на каталог, куда будет добавлен модуль Python
  4. чтобы сохранить изменения, нажмите Ctrl+ X и введите Сейчас откройте бездействующие и попробуйте импортировать модуль Python, без ошибок для меня!!!

Задание переменной среды $PYTHONPATH, похоже, не влияет на терминалы iPython в Spyder IDE на Mac. Однако меню приложений Spyder содержит "PYTHONPATH manager". Добавление моего пути решило мою проблему."PYTHONPATH manager" также сохраняется при перезапуске приложений.

Это характерно для Mac, поскольку установка переменной среды PYTHONPATH на моем ПК с Windows дает ожидаемое поведение (модули найдены) без использования менеджера PYTHONPATH в Spyder.

В MacOS Big Surf файл для добавления «экспорта» - $HOME / .zprofile.

Итак, это должно работать для добавления PYTHONPATH в переменные среды Mac Big Surf:

      export PYTHONPATH=$HOME/my_folder

В моем файле, расположенном по адресу /Users/your_username/.zshrc

Я добавляю следующую строку: export PYTHONPATH="${PYTHONPATH}:/your/path"и сохранить его.

Если файл не существует, создайте безымянный .txtфайл и измените его расширение на .zshrc. Это скрытый файл, поэтому вам нужно нажать cmd+shift+.чтобы увидеть это.

Я использую macOS Монтерей.

Видел весь предыдущий ответ и попробовал сам. Но большинство из них окажется бесполезным.

При вводе в терминале принимается версия Python 2.7, но все новые модули будут для версии 3.x, поэтому просто введите

      python3 /path/to/file/main.py

В конечном итоге ваш файл будет запущен в Python3, и весь импорт из установленных пакетов будет работать нормально.

Другие вопросы по тегам