Почему Conda использует пакет python вне моей среды? - PullRequest
0 голосов
/ 23 сентября 2018

Я только что создал новую среду conda с Python версии 3.5.6.Я установил один пакет под названием zipline, все в порядке.Я активировал среду, и это выглядит хорошо.Когда я запускаю некоторый тестовый код, я получаю ошибку, что он пытается использовать зависимость (numpy) и выходит за пределы моей новой среды.Он использует код для numpy из установки Python по умолчанию на моем компьютере MacOSX, которая является версией Python 2.7.Это беспокоит мой разум.Почему он должен искать какие-либо пакеты, которые не установлены в моей текущей среде?Так что я решил, что мне просто нужно было установить новую версию numpy в моем python 3.5 env.Но когда я пытаюсь это сделать, Конда говорит мне, что все зависимости уже встречены.

Вот ошибка.Вы можете видеть первую строку, это импорт нового пакета, который я установил в моем новом env.Затем он пытается получить NumPy и ищет папку Python 2.7.С моей точки зрения, кажется, что никогда не следует искать в этой папке 2.7, пока мой env активирован.Я никогда не устанавливал NumPy, поэтому, кажется, следует сказать, что модуль не найден.

Traceback (most recent call last):
  File "markowitz.py", line 1, in <module>
    from zipline.utils.factory import load_bars_from_yahoo
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/site-packages/zipline/__init__.py", line 17, in <module>
    import numpy as np
  File "/Users/apple/anaconda/lib/python2.7/site-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/Users/apple/anaconda/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/Users/apple/anaconda/lib/python2.7/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/Users/apple/anaconda/lib/python2.7/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/Users/apple/anaconda/lib/python2.7/site-packages/numpy/core/__init__.py", line 26, in <module>
    raise ImportError(msg)
ImportError: 
Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

ОК, поэтому я попробовал что-то.Я вышел из окружения и удалил NumPy из Конда.Я заметил, что в моем новом окружении все еще была версия numpy для python 3.5.Так что это хорошо.Я перезапустил скрипт из нового env и не получил ту же ошибку, но получил ошибку для другого пакета, который пытался ссылаться из установки по умолчанию в python 2.7.Так что это тот же тип ошибки.Почему он это делает?Похоже, что он смотрит в пакеты conda по умолчанию, прежде чем искать пакеты в env?

Вот новая ошибка:

Traceback (most recent call last):
  File "markowitz.py", line 1, in <module>
    from zipline.utils.factory import load_bars_from_yahoo
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/site-packages/zipline/__init__.py", line 21, in <module>
    from trading_calendars import get_calendar
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/site-packages/trading_calendars/__init__.py", line 16, in <module>
    from .trading_calendar import TradingCalendar
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/site-packages/trading_calendars/trading_calendar.py", line 20, in <module>
    from pandas.tseries.holiday import AbstractHolidayCalendar
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/site-packages/pandas/__init__.py", line 23, in <module>
    from pandas.compat.numpy import *
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/site-packages/pandas/compat/__init__.py", line 34, in <module>
    import platform
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/platform.py", line 117, in <module>
    import sys, os, re, subprocess
  File "/Users/apple/anaconda/envs/env_zipline_p36/lib/python3.5/subprocess.py", line 127, in <module>
    import _posixsubprocess
ImportError: dlopen(/Users/apple/anaconda/lib/python2.7/site-packages/_posixsubprocess.so, 2): Symbol not found: _PyString_AsString
  Referenced from: /Users/apple/anaconda/lib/python2.7/site-packages/_posixsubprocess.so
  Expected in: flat namespace
 in /Users/apple/anaconda/lib/python2.7/site-packages/_posixsubprocess.so
...