当 conda 说 1.20.1 已安装时,为什么 Python 在我的 dask 环境中加载 numpy 1.20.0?
Why is Python loading numpy 1.20.0 in my dask env when conda says 1.20.1 is installed?
当 conda 说 1.20.1 已安装时,为什么 Python 在我的 dask 环境中加载 numpy 1.20.0?
(dask) ➜ dask: conda list -n dask | grep numpy
numpy 1.20.1 py38h18fd61f_0 conda-forge
(dask) ➜ dask: python
Python 3.8.8 | packaged by conda-forge | (default, Feb 20 2021, 16:22:27)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.full_version
'1.20.0'
这可能是因为默认情况下,python 包安装在所谓的用户站点(pip install --user package
或当前缀目录对当前用户不可写时自动安装在较新的 pip 版本中)仍然在 PYTHONPATH
.
中排名第一
您可以使用三种方法停用用户站点:
-s
python 的命令行选项:python -s -c 'import numpy; print(numpy.__version__)'
PYTHONNOUSERSITE
环境变量:export PYTHONNOUSERSITE=1
(实际值无所谓,设置即可)然后python -c 'import numpy; print(numpy.__version__)'
在您的脚本中,在导入任何内容之前,执行
import site
site.ENABLE_USER_SITE = False
我会选择前两个中的一个,像这样的事情不应该在脚本中,而应该由环境解决。
要获取您的用户站点的位置,您可以执行以下操作:
python -c 'import site; print(site.USER_SITE)'
当 conda 说 1.20.1 已安装时,为什么 Python 在我的 dask 环境中加载 numpy 1.20.0?
(dask) ➜ dask: conda list -n dask | grep numpy
numpy 1.20.1 py38h18fd61f_0 conda-forge
(dask) ➜ dask: python
Python 3.8.8 | packaged by conda-forge | (default, Feb 20 2021, 16:22:27)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.full_version
'1.20.0'
这可能是因为默认情况下,python 包安装在所谓的用户站点(pip install --user package
或当前缀目录对当前用户不可写时自动安装在较新的 pip 版本中)仍然在 PYTHONPATH
.
您可以使用三种方法停用用户站点:
-s
python 的命令行选项:python -s -c 'import numpy; print(numpy.__version__)'
PYTHONNOUSERSITE
环境变量:export PYTHONNOUSERSITE=1
(实际值无所谓,设置即可)然后python -c 'import numpy; print(numpy.__version__)'
在您的脚本中,在导入任何内容之前,执行
import site site.ENABLE_USER_SITE = False
我会选择前两个中的一个,像这样的事情不应该在脚本中,而应该由环境解决。
要获取您的用户站点的位置,您可以执行以下操作:
python -c 'import site; print(site.USER_SITE)'