为什么我的Anaconda python安装无法通过pip找到添加到conda env的软件包?

时间:2017-11-01 15:02:25

标签: anaconda

平台是MacOS Sierra,最新的Anaconda python 3.6。在下面的所有输出中,/Users/[me]替换为${HOME}

我正在测试一些使用Auth0 python SDK的脚本。我为我的测试创建了一个新的conda环境。 Auth0模块在我所知道的任何conda通道中都不可用,因此我在新的conda环境中使用了pip(在激活该环境之后):

$ source ${HOME}/anaconda/envs/python3/bin/activate
(root) $ ${HOME}/anaconda/envs/python3/bin/pip install auth0-python

(root) $ which python    
${HOME}/anaconda/bin/python
(root) $ python -c 'import sys; print(sys.path)'
['', '${HOME}/anaconda/lib/python36.zip', 
'${HOME}/anaconda/lib/python3.6', '${HOME}/anaconda/lib/python3.6/lib-
dynload', '${HOME}/.local/lib/python3.6/site-packages', 
'${HOME}/anaconda/lib/python3.6/site-packages', 
'${HOME}/anaconda/lib/python3.6/site-packages/aeosa']

我可以在Anaconda Navigator和命令行中看到该环境中的auth0-python模块:

$ ${HOME}/anaconda/envs/python3/bin/pip show auth0-python
Name: auth0-python
Version: 3.1.4
Summary: Auth0 Python SDK
Home-page: https://github.com/auth0/auth0-python
Author: Auth0
Author-email: support@auth0.com
License: MIT
Location: ${HOME}/anaconda/envs/python3/lib/python3.6/site-packages
Requires: requests
(root) 
$ 

但是python没有找到它:

$ source ${HOME}/anaconda/envs/python3/bin/activate
(root) 
$ python test.py 
Traceback (most recent call last):
  File “test.py", line 12, in <module>
    from auth0.v3.authentication import GetToken
ModuleNotFoundError: No module named 'auth0'
(root) 
$ 

1 个答案:

答案 0 :(得分:1)

问题是您没有为activate命令指定环境名称。你可以看到这个,因为你在anaconda3/envs/python3/bin中使用了pip,但Python解释器来自anaconda3/bin。因此,您正在将包安装到anaconda3/envs/python3的环境中,但是从根环境(anaconda3)运行Python。

要解决此问题,只需为activate脚本指定环境名称:

source ${HOME}/anaconda3/bin/activate python3

此外,如果PATH上有anaconda3/bin,则无需指定激活脚本的完整路径。