Сломал мою сборку python при добавлении numpy

#python #path #numpy

#python #путь #numpy

Вопрос:

При попытке собрать мой python, добавив к нему numpy, мне удалось где-то создать проблемы. Теперь, несмотря на то, что у меня установлены numpy и другие пакеты, такие как BeautifulSoup, я не могу импортировать их из python на моем Mac по умолчанию. Ранее я мог их импортировать.

Где я должен изначально искать потенциальные проблемы? Мой профиль bash? .profile? Где-то в python? Любая помощь будет оценена. Я очень новичок в установке пакетов, а также переменных пути, поэтому любые указания относительно того, где может быть ошибка, были бы полезны.

Редактировать


После следования совету Джона Кейса и вывода пути python это был результат:

 ['','/Library/Python/2.7/site-packages/pip-1.0.2-py2.7.egg',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
'/Library/Python/2.7/site-packages',
'/Library/Python/2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']
  

Должны ли эти пути включать в список мои установленные пакеты (такие как numpy и beautiful soup)?

РЕДАКТИРОВАТЬ 2


Это мой профиль bash. Из комментариев к моему вопросу кажется, что это может быть проблемой, поэтому я подумал, что включу их ниже. Как я могу изменить их, чтобы моя сборка python вернулась к установке вещей в нужном месте?

 export PATH=/usr/local/bin:/usr/local/share/python:/usr/local/sbin:$PATH


# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
  

Комментарии:

1. Вы можете запустить python -c "import sys; print sys.path" , который будет печатать каждый путь, где python находит доступные пакеты и модули.

2. Спасибо, я сделал это и обновил свой вопрос данными из него.

3. Теперь посмотрите, /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages и вы увидите, какие пакеты были установлены.

4. Извините, если это глупый вопрос. Как мне заглянуть в эти папки, чтобы точно проверить, где находятся мои пакеты?

5. Если вы откроете тот, который я упомянул выше ( site-packages ), вы должны увидеть, какие дополнительные пакеты вы добавили в установку python. Вы можете сделать это через Finder (откройте терминал и введите open <DIR> ) или непосредственно в Terminal ( cd <DIR>; ls -l ).

Ответ №1:

Насколько я понимаю, вы создали пользовательский python, который отличается от вашей установки python по умолчанию.

Вы должны либо использовать недавно установленный python, либо указать путь numpy к установке по умолчанию. Есть 2 способа сделать второй выбор:

Предположим, что ваш модуль numpy находится в каталоге /Users/Me/python/modules .

  1. Установите переменную среды для внешних модулей из командной строки:

     setenv PYTHONPATH /Users/Me/python/modules
      

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

  2. В вашем коде вы можете добавить тот же каталог в свой path:

     import sys
    sys.path.append('/Users/Me/python/modules')
    import numpy
    ...
      

Я надеюсь, что это поможет.

Комментарии:

1. Я не создал новый python. я все еще использую python, предоставленный Apple по умолчанию. Есть ли какие-либо причины, по которым я не должен использовать установку по умолчанию? Если я последую вашему первому шагу, приведет ли это к тому, что все мои библиотеки попадут в эту папку? Будут ли они все работать с моим python по умолчанию?

2. Могут быть некоторые причины для создания нового python, но в вашем случае в этом нет необходимости. Переменная среды PYTHONPATH указывает дополнительные пути к модулю python, и вы не должны помещать туда все свои модули. Модули в указанном пути будут работать как модули по умолчанию.

3. Это имеет смысл. До / после того, как я запустил это в своей командной строке, нужно ли мне что-либо делать с моими текущими настройками профиля bash?

4. setenv команда будет действовать только в текущем сеансе, если вы добавите эту команду в профиль bash некоторых пользователей, она станет постоянной, как и любая другая переменная среды. Если вы это сделаете, вам не нужно каждый раз запускать эту команду.