pyenv + conda没有安装软件包

时间:2019-02-16 09:56:34

标签: python conda pyenv

我正在尝试使用conda安装软件包,但是没有任何反应。 $ python -c "import numpy" Traceback (most recent call last): File "<string>", line 1, in <module> import numpy ModuleNotFoundError: No module named 'numpy' 找不到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

是否有一种解决方案可以使mkl真正安装软件包?还是我真的必须卸载所有内容并重新安装所有内容?还是有没有比conda恐怖的安装python(使用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

和例如

attr

2 个答案:

答案 0 :(得分: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没什么问题,但是您键入的命令可能是在系统上而不是conda上调用本机python。

这些命令将使您看到正在调用的路径:

# 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"

希望有帮助!

答案 1 :(得分:0)

tl; dr

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*

(请考虑在执行此类基本步骤之前进行备份)。之后conda可以正常安装软件包:

$ conda install numpy
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: {HOME}.pyenv/versions/miniconda3-latest

  added / updated specs:
    - numpy


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    numpy-base-1.15.4          |           py36_2         6.1 MB  intel
    ------------------------------------------------------------
                                           Total:         6.1 MB

The following NEW packages will be INSTALLED:

  numpy-base         intel/linux-64::numpy-base-1.15.4-py36_2


Proceed ([y]/n)? y


Downloading and Extracting Packages
numpy-base-1.15.4    | 6.1 MB    | ################################################################################################################################################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done