平台是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)
$
答案 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
,则无需指定激活脚本的完整路径。