pyenv + conda不安装包

问题描述 投票:1回答:2

我正在尝试使用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
python conda pyenv
2个回答
2
投票

更新的答案:

第二次尝试回答你的问题(我是使用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"

希望有所帮助!


0
投票

tl;博士

conda install -fconda 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
© www.soinside.com 2019 - 2024. All rights reserved.