我正在尝试使用conda
安装软件包,但没有任何反应。 conda
找不到numpy:
$ python -c "import numpy"
Traceback (most recent call last):
File "<string>", line 1, in <module>
import numpy
ModuleNotFoundError: No module named 'numpy'
但是当我尝试使用numpy
安装conda
时,我得到:
$ conda install numpy
Collecting package metadata: done
Solving environment: done
# All requested packages already installed.
并且无论如何都无法强迫conda
安装它:
$ conda install --force-reinstall numpy
Collecting package metadata: done
Solving environment: done
## Package Plan ##
environment location: {HOME}/.pyenv/versions/miniconda3-latest
added / updated specs:
- numpy
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
是否有解决方案使conda
真正安装包?或者我真的必须卸载所有内容并再次安装所有内容吗?或者甚至是安装python(使用mkl
)的解决方案,它比conda
更不可靠?
我的环境设置(使用pyenv
),使用conda
安装:
$ which python
{HOME}/.pyenv/shims/python
例如
$ python -c "import tqdm; print(tqdm.__file__)"
{HOME}/.pyenv/versions/miniconda3-latest/lib/python3.6/site-packages/tqdm/__init__.py
第二次尝试回答你的问题(我是使用pyenv的新手,但希望这有帮助):
当使用pyenv和miniconda时,我会激活你的环境(你的帖子中的miniconda3-latest),然后应该使用正确的conda来安装你的软件包:
# Activate your environment
pyenv activate miniconda3-latest
# Install numpy, etc.
conda install numpy
# This then works without errors for me:
python -c "import numpy"
# Deactivate your environment when finish if you want
pyenv deactivate
作为一般观察,似乎pyenv和conda正在做类似的事情(见https://bastibe.de/2017-11-20-pyenv.html)。我还没有探索过很多pyenv,但是如果我使用它,我可能会考虑不将它与conda配对,并且只依靠原生python(venv,pip)来安装包,并让pyenv完成所有环境管理(而不是在它上面添加conda)。
我不认为conda没有任何问题,而是你输入的命令可能是在你的系统上调用本机python而不是conda。
这些命令可以让你看到你正在调用的路径:
# for linux/mac
which python
# for windows
where python
如果它显示的是像/usr/bin/python
(对于linux / mac),那么这不是你正在调用的python的conda实例。
如果要调用已安装软件包的实际conda实例,则应找到安装conda的位置并使用完整路径调用它:
# taking your example it looks like your python is in
# {HOME}/.pyenv/versions/miniconda3-latest
{HOME}/.pyenv/versions/miniconda3-latest/bin/python -c "import numpy"
# or on my computer it is (~ means home):
~/anaconda3/bin/python -c "import numpy"
希望有所帮助!
conda install -f
,conda install --force-reinstall
不做任何事情,手动删除缓存,例如rm -rf {CONDA_LOCATION}/pkgs/{PACKAGE_NAME}*
紧随其后的是conda install {PACKAGE_NAME}
。
我终于找到了一个合理的黑客来迫使conda
安装软件包。 conda
保留了一个可以使用conda info
找到的缓存
$ conda info
...
package cache : {HOME}/.pyenv/versions/miniconda3-latest/pkgs
{HOME}/.conda/pkgs
只需从缓存中删除与要安装的软件包相关的所有内容:
rm -rf {HOME}/.pyenv/versions/miniconda3-latest/pkgs/numpy*
(考虑在执行这些激进步骤之前进行备份)。之后qazxsw poi可以正常安装包:
conda