Ошибка при импорте пакетов Python (например, Numpy) - PullRequest
2 голосов
/ 08 июля 2019

Я использую вычислительный кластер и не имею доступа ко всему кластеру.Поэтому я пытаюсь локально (в своем «домашнем» каталоге) установить пакеты для python, но у меня возникают проблемы с импортом их из сценариев.

Я попытался обновить мой PATH и PYTHONPATH, установить обав ~ / .local / lib.В кластере, который я импортирую, уже создан модуль Python 3.7.3.Но у меня нет доступа к нему, чтобы добавить к нему больше пакетов, поэтому я должен установить его локально.И путь к модулю, и к моему каталогу .local находятся в PATH.

Когда я использую pip для установки пакетов, я получаю эту ошибку: «ОШИБКА: не удалось установить пакеты из-за ошибки EnvironmentError: [Errno 13] Отказано в доступе: '/s1/opt/python-3.7.3/lib / python3.7 / site-packages / numpy 'Подумайте об использовании опции --user или проверьте разрешения. "Поэтому я должен установить его локально.Когда я использую опцию --user, кажется, все устанавливается нормально.Кроме того, версия python3.7 в моем каталоге .local содержит только python и каталог site-packages, в то время как python3.7 в модуле из кластера содержит много других файлов.

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

Traceback (most recent call last):
  File "fragment_assignment.py", line 10, in <module>
    import numpy as np
  File "/s1/snagaraj/.local/lib/python3.7/site-packages/numpy/__init__.py", line 142, in <module>
    from . import core
  File "/s1/snagaraj/.local/lib/python3.7/site-packages/numpy/core/__init__.py", line 71, in <module>
    raise ImportError(msg)
ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
Here is how to proceed:
- If you're working with a numpy git repository, try `git clean -xdf`
  (removes all files not under version control) and rebuild numpy.
- If you are simply trying to use the numpy version that you have installed:
  your installation is broken - please reinstall numpy.
- If you have already reinstalled and that did not fix the problem, then:
  1. Check that you are using the Python you expect (you're using /usr/bin/python),
     and that you have no directories in your PATH or PYTHONPATH that can
     interfere with the Python and numpy versions you're trying to use.
  2. If (1) looks fine, you can open a new issue at
     https://github.com/numpy/numpy/issues.  Please include details on:
     - how you installed Python
     - how you installed numpy
     - your operating system
     - whether or not you have multiple versions of Python installed
     - if you built from source, your compiler versions and ideally a build log

     Note: this error has many possible causes, so please don't comment on
     an existing issue about this - open a new one instead.

Первоначальная ошибка:

Ни один модуль с именем _multiarray_umath

Как примечание: все исправления, предложенные другим, у которых была обнаружена ошибка, не работали для меня.

Ответы [ 2 ]

0 голосов
/ 13 июля 2019

Похоже, что где-то может отсутствовать зависимость. Попробуйте установить libatlas3-base, чтобы получить этот файл.

sudo apt-get установить libatlas3-base

0 голосов
/ 08 июля 2019

Я предлагаю создать виртуальную среду для ваших приложений / нужд разработки и затем запустить в ней. В общем, виртуальные среды - это отличный способ убедиться, что у вас есть все необходимые зависимости, и нет проблем с другими вещами. Вероятно, самый простой способ начать это с pipenv. Еще одна статья о виртуальных средах и pipenv .

Для начала убедитесь, что установлено pipenv:

$ pip install --user pipenv

Создайте папку для вашего проекта и смените в ней каталог (или просто cd в каталог текущего проекта):

$ mkdir my_project
$ cd my_project

А затем начните установку необходимых пакетов из каталога my_project:

$ pipenv install numpy scipy pandas

или любые другие пакеты, которые вам нужны. После завершения этой операции вы активируете свою среду, выполнив:

$ pipenv shell

и затем все, что вы хотите сделать с питоном. Кроме того, вы можете просто запустить скрипт (назовем его my_script.py) в среде с:

$ pipenv run python my_script.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...