Различные NumPy версия в Anaconda и NUMPY .__ версия__ в IPython Shell - PullRequest
0 голосов
/ 09 октября 2018

Я использовал Как проверить, какую версию NumPy я использую? , чтобы узнать, как получить версию numpy.Однако, когда я запускаю conda list | grep numpy, я получаю:

numpy                     1.15.2           py36ha559c80_0
numpy-base                1.15.2           py36h8128ebf_0
numpydoc                  0.8.0                    py36_0

Однако, когда я запускаю версию из оболочки IPython, я получаю:

import numpy as np
np.__version__
Out: '1.13.3'
np.version.version
Out: '1.13.3'
np.version.full_version
Out: '1.13.3'

Почему эти две версии отличаются?Которому я должен доверять?Спасибо за любую помощь.


Обратите внимание, что я не использую venv (т. Е. Виртуальную среду).Я непосредственно получаю доступ к пакетам Анаконды.Таким образом, нет проблем с версионированием.


Вот что PyCharm показывает мне: enter image description here


Согласно версии Кондыинформация на упаковке не соответствует __version __ , здесь __file__ и sys.path.Пожалуйста, обратите внимание, что я скрыл свое имя по вопросам конфиденциальности.enter image description here

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Проблема в том, что PyCharm читает более старую версию Python из местоположения App-data\roaming... Что я сделал, так это то, что в сценарии запуска я добавил следующий код.

print("Correcting sys paths now...")
paths = [
'C:\\Anaconda3\\python36.zip',
 'C:\\Anaconda3\\DLLs',
 'C:\\Anaconda3\\lib',
 'C:\\Anaconda3',
 'C:\\Anaconda3\\lib\\site-packages',
 'C:\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
]
import sys
for path in reversed(paths):
    sys.path.insert(0,path)
print("Completed correcting sys paths now...")
del path
del paths

Приведенный выше код заставит Python читать последние файлы из Anaconda.Однако, если вы используете виртуальную среду, вам нужно указать на эту среду.

Если вы хотите узнать, где установлен Python, вы можете запустить:

import os
import sys
os.path.dirname(sys.executable)

Приведенный выше ответ основан на conda python не использует версию numpy, я пытаюсь установить, если я также укажу, что он должен использовать python 2 .Это не обеспечивает решение.Я разместил решение выше.

0 голосов
/ 09 октября 2018

Похоже, что у вас кроме python 3 окружения в anaconda есть еще одна python с IPython и numpy.

Похоже, что PyCharm и Anaconda видят (правильно)те же самые версии numpy, в то время как IPython, которые, я полагаю, вы не запускали из среды анаконды, видят другую python установку с более старой numpy.Фактически, ваш вывод показывает, что есть еще python3.6 в C:\Users\..., который не принадлежит anaconda.

Чтобы сделать numpy 1.15 доступным в IPython, вы можете запустить IPython изнутри вашей среды анаконды, набрав в терминале (более простое решение)

C:\>activate <your_anaconda_environment_name>
(<your_anaconda_environment_name>) C:\>ipython

или вы заставите свой локальный IPython загружать модули из среды anaconda, посмотрев на thisответить .Это не будет рекомендуемым вариантом в этом случае, учитывая результирующие перекрестные связи двух установок Python.

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