Я недавно загрузил nltk_data в Macintosh HD 2 (переименован в «Внешний»), так как на моем основном жестком диске не хватает памяти. Может ли кто-нибудь помочь мне в установке переменных среды для этих же значений? Я пробовал следующее в моем .bash_profile, но он просто временно запускается до запуска bash, мне нужно сделать изменение постоянным:

PATH="$/Volumes/External/bin:$PATH"
export PATH
2
Inherited Geek 21 Дек 2016 в 13:39

2 ответа

Установка переменных среды в OS X немного сложна, и это подвижная цель: Stackoverflow полон хороших решений, которые больше не работают.

Если ваша цель - использовать nltk из программ или приложений, которые вы запускаете из Терминала, то это довольно просто; в вашем .bash_profile или .bashrc задайте и экспортируйте необходимые переменные.

  • Если у вас возникли проблемы с запуском правильного исполняемого файла Python или idle, добавьте каталог, содержащий их, в вашу переменную PATH примерно так, как вы показываете в своем вопросе. (Но первый $, который вы показываете, является ошибкой: этот путь не является переменной оболочки).

    export PATH="/Volumes/External/bin:$PATH"
    
  • Чтобы позволить nltk найти корпуса и ресурсы, которые вы загрузили с помощью nltk.download(), установите переменную NLTK_DATA. Например.,

    export NLTK_DATA=/Volumes/External/nltk_data
    

Похоже, на ваш вопрос ответил второй пункт, но я даю и то, и другое, поскольку не всегда понятно (новым пользователям), какой из них имеет отношение к делу.

Имейте в виду, что приложения, которые вы запускаете с панели запуска (например, программа запуска Anaconda), не смогут видеть переменные, которые вы установили таким образом. Как упоминалось выше, это более сложная проблема для решения, и, насколько мне известно, не существует решения, которое будет работать для всех приложений в последних версиях OS X. Просто запустите приложение Python или IDE из командной строки (набрав idle, subl и т. Д. В командной строке bash), и все будет в порядке.

2
alexis 22 Дек 2016 в 01:56
Вы спасатель!
 – 
Inherited Geek
21 Дек 2016 в 20:12
@alexis, есть ли способ удалить ответы, которые больше не работают? Я попытался по некоторым вопросам массово отредактировать их, выделив «Предупреждения» жирным шрифтом, особенно. когда проблема возникла снова, и люди используют ответы SO, которые не работают дольше, чем перерастают проблему в репозитории github и рассылают ту же проблему по разным вопросам = (
 – 
alvas
22 Дек 2016 в 04:08
Я не знаю, что говорят об этом практики stackoverflow; может тебе стоит спросить на мета. Но обратите внимание, что «больше не» относится к версии OS X, которую вы используете, и все еще есть много людей, использующих Yosemite, Mountain Lion или что-то еще. Поэтому я думаю, что идеальным решением было бы четко указать, на каких версиях ОС решение работает, а на каких - нет.
 – 
alexis
24 Дек 2016 в 00:52

Вам нужен доступ к тегам и диктовкам NLTK? Есть способ расширить путь NLTK (это простой список):

import nltk
nltk.path.append('/home/to/some_path/nltk_data/')
0
Dmitry 21 Дек 2016 в 14:14
Но это мне нужно делать каждый раз в моем редакторе Python, верно?
 – 
Inherited Geek
21 Дек 2016 в 14:36
Также вы можете установить переменную окружения NLTK_DATA: export NLTK_DATA=/path/to/nltk_data.
 – 
Dmitry
21 Дек 2016 в 14:43
Удивительно, но он только начал работать @dmitry, спасибо!
 – 
Inherited Geek
21 Дек 2016 в 14:52