Анаконда выбирает правильное окружение, но неверный sys.path? - PullRequest
0 голосов
/ 17 мая 2019

У меня разные анаконды.При запуске одного из них кажется, что sys.path по-прежнему настроен на совершенно неправильный каталог.Не правильно ли я понимаю концепции сред или это ошибка в моей настройке Anaconda?

Мои окружения:

fabianwerner ~$ conda env list
# conda environments:
#
base                  *  /Users/fabianwerner/anaconda3/anaconda3
my-rdkit-env             /Users/fabianwerner/anaconda3/anaconda3/envs/my-rdkit-env
openpose                 /Users/fabianwerner/anaconda3/anaconda3/envs/openpose

fabianwerner ~$ 

Я активирую среду 'openpose':

fabianwerner ~$ conda activate openpose
(openpose) fabianwerner ~$ 

Я попытаюсь импортировать 'keras', поэтому давайте удостоверимся, что он установлен:

(openpose) fabianwerner ~$ pip list | grep -i keras
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Keras (2.2.4)
Keras-Applications (1.0.7)
Keras-Preprocessing (1.0.9)
You are using pip version 9.0.1, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(openpose) fabianwerner ~$ 

Я запускаю python и пытаюсь импортировать keras:

(openpose) fabianwerner ~$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 26 2018, 08:42:37) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import keras
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'keras'
>>> 

Пустьмы проверим, где python ищет модули:

>>> import sys
>>> print(sys.path)   
['', '/Users/fabianwerner/anaconda3/anaconda3/envs/my-rdkit-env/lib/python36.zip', '/Users/fabianwerner/anaconda3/anaconda3/envs/my-rdkit-env/lib/python3.6', '/Users/fabianwerner/anaconda3/anaconda3/envs/my-rdkit-env/lib/python3.6/lib-dynload', '/Users/fabianwerner/.local/lib/python3.6/site-packages', '/Users/fabianwerner/anaconda3/anaconda3/envs/my-rdkit-env/lib/python3.6/site-packages']
>>> 

, поэтому я активировал среду 'openpose', но он все еще ищет модули в другой (неправильной!) среде 'my-rdkit-env'!

Как это исправить?

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

Я не вижу никаких очевидных проблем с настройкой Anaconda, так как информация conda -a дает правильный путь:

(openpose) fabianwerner ~$ conda info -a

     active environment : openpose
    active env location : /Users/fabianwerner/anaconda3/anaconda3/envs/openpose
            shell level : 2
       user config file : /Users/fabianwerner/.condarc
 populated config files : 
          conda version : 4.5.11
    conda-build version : 3.15.1
         python version : 3.7.0.final.0
       base environment : /Users/fabianwerner/anaconda3/anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/osx-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/osx-64
                          https://repo.anaconda.com/pkgs/pro/noarch
          package cache : /Users/fabianwerner/anaconda3/anaconda3/pkgs
                          /Users/fabianwerner/.conda/pkgs
       envs directories : /Users/fabianwerner/anaconda3/anaconda3/envs
                          /Users/fabianwerner/.conda/envs
               platform : osx-64
             user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Darwin/17.7.0 OSX/10.13.6
                UID:GID : 502:20
             netrc file : None
           offline mode : False

# conda environments:
#
base                     /Users/fabianwerner/anaconda3/anaconda3
my-rdkit-env             /Users/fabianwerner/anaconda3/anaconda3/envs/my-rdkit-env
openpose              *  /Users/fabianwerner/anaconda3/anaconda3/envs/openpose
strokinat0r              /Users/fabianwerner/anaconda3/anaconda3/envs/strokinat0r

sys.version: 3.7.0 (default, Jun 28 2018, 07:39:16) 
...
sys.prefix: /Users/fabianwerner/anaconda3/anaconda3
sys.executable: /Users/fabianwerner/anaconda3/anaconda3/bin/python
conda location: /Users/fabianwerner/anaconda3/anaconda3/lib/python3.7/site-packages/conda
conda-build: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-build
conda-convert: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-convert
conda-develop: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-develop
conda-env: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-env
conda-index: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-index
conda-inspect: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-inspect
conda-metapackage: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-metapackage
conda-render: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-render
conda-server: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-server
conda-skeleton: /Users/fabianwerner/anaconda3/anaconda3/bin/conda-skeleton
user site dirs: ~/.local/lib/python3.6

CIO_TEST: <not set>
CONDA_DEFAULT_ENV: openpose
CONDA_EXE: /Users/fabianwerner/anaconda3/anaconda3/bin/conda
CONDA_PREFIX: /Users/fabianwerner/anaconda3/anaconda3/envs/openpose
CONDA_PREFIX_1: /Users/fabianwerner/anaconda3/anaconda3
CONDA_PROMPT_MODIFIER: (openpose) 
CONDA_PYTHON_EXE: /Users/fabianwerner/anaconda3/anaconda3/bin/python
CONDA_ROOT: /Users/fabianwerner/anaconda3/anaconda3
CONDA_SHLVL: 2
PATH: /Users/fabianwerner/anaconda3/anaconda3/envs/openpose/bin:/Users/fabianwerner/anaconda3/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/GIMP-2.10.app/Contents/MacOS
REQUESTS_CA_BUNDLE: <not set>
SSL_CERT_FILE: <not set>


WARNING: could not import _license.show_info
# try:
# $ conda install -n root _license
(openpose) fabianwerner ~$ 

Кроме того, у меня нет набора переменных среды, относящихся к python:

(openpose) fabianwerner ~$ printenv | grep -i python
CONDA_PYTHON_EXE=/Users/fabianwerner/anaconda3/anaconda3/bin/python
(openpose) fabianwerner ~$ 

Моя настройка:

  • Mac OS-X 10.13.6 (High Sierra)
  • Анаконда версия 4.5.11

Спасибо,

FW

1 Ответ

1 голос
/ 17 мая 2019

Интерпретатор Python, который вы запустили в своем примере, не является тем, кто работает в этой среде. conda info -a говорит python version : 3.7.0.final.0 и все же ваш переводчик говорит Python 3.6.5

Проблема должна стать очевидной, когда вы активируете свою среду и запустите which python, который должен указывать на активированный env, но, вероятно, нет.

Как вы создали эти среды? Обязательно установите параметр python=XX, иначе новая среда использует интерпретатор из базовой / корневой среды, а не устанавливает новую. То есть conda create -n my_environment python=3.7

Edit: Извините, я только что посмотрел и протестировал conda info -a. python version : XX, похоже, ссылается на базовую среду, а не на текущую.

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

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